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,
-- 
Paul Ivanov
314 address only used for lists,  off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 

Attachment: signature.asc
Description: Digital signature

------------------------------------------------------------------------------
Fulfilling the Lean Software Promise
Lean software platforms are now widely adopted and the benefits have been 
demonstrated beyond question. Learn why your peers are replacing JEE 
containers with lightweight application servers - and what you can gain 
from the move. http://p.sf.net/sfu/vmware-sfemails
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to