On 04/23/2011 03:19 AM, Paul Ivanov wrote: > Hi Xavier, > > Xavier Gnata, on 2011-04-23 02:33, wrote: >> Imagine you have this code: >> >> import numpy as np >> import matplotlib.cm as cm >> import matplotlib.mlab as mlab >> import matplotlib.pyplot as plt >> >> delta = 0.25 >> x = y = np.arange(-3.0, 3.0, delta) >> X, Y = np.meshgrid(x, y) >> Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) >> Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) >> Z = Z2-Z1 # difference of Gaussians >> >> plt.imshow(Z, interpolation='nearest', cmap=cm.gray, origin='lower', >> extent=[-3,3,-3,3]) >> Then you want to change the color of a few pixels to red. >> You have a list of coordinates (i,j) and each pixel in this list should >> now be red. >> >> I could play with masked arrays like in: >> http://matplotlib.sourceforge.net/examples/pylab_examples/image_masked.html >> but I would prefer a simple "display this pixel (i,j) in red whatever >> his value is" function. > Since you're using a gray color map for that image, you won't be > able to set a particular pixel to red. You'll have to either > overlay a new image that would be masked out everywhere except > for the pixels you want to change, as you mentioned, or create > new image patches at the corresponding positions like this: > > idx2im = lambda i,j: (x[i],x[j+1],y[i],y[j+1] ) > plt.imshow([[.9]], extent=idx2im(12,12), cmap =cm.jet, > origin='lower',vmin=0,vmax=1) > > or something like this: > > plt.Rectangle((x[10],y[10]),width=delta,height=delta,color='red') > ax = plt.gca() > ax.add_artist(r) > plt.draw() > > > best, Thanks. The code using "Rectangle" works very well. Using masks is more efficient but overshoot if I want to change only a few pixels.
Xavier ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users