On 2/9/12 9:05 AM, Andreas H. wrote: > Hi, > > I'm trying to use pcolor on a masked array. I would like masked elements > to show up in a special color. I have written some code, but it does not > seem to work: > > I would appreciate any help :) > > Cheers, > Andreas. > > ---8<------- > > import matplotlib as mpl > import matplotlib.pyplot as plt > > from numpy import linspace > from numpy.random import randn > from numpy.ma import masked_invalid > > D = randn(12*72).reshape((12,72)) > D[4,:] = nan > D[6,6] = nan > > D = masked_invalid(D) > > cmap = mpl.cm.bwr > cmap.set_bad('k', 1.) > > xbin = linspace(0, 12, 13) > ybin = linspace(-90, 90, 73) > > fig = plt.figure() > spl = fig.add_subplot(111) > pl = spl.pcolor(xbin, ybin, D.T, cmap=cmap, edgecolors='none', > vmin=-5, vmax=5) Andreas: That's because pcolor only fills polygons that are not masked - it does do anything with the masked ones.
From the docstring: *X*, *Y* and *C* may be masked arrays. If either C[i, j], or one of the vertices surrounding C[i,j] (*X* or *Y* at [i, j], [i+1, j], [i, j+1],[i+1, j+1]) is masked, *]nothing is plotted. I suppose pcolor could be modified to fill the masked polygons with the color indicated by cmap.set_bad - I think that's what most people would expect. -Jeff -- Jeffrey S. Whitaker Phone : (303)497-6313 Meteorologist FAX : (303)497-6449 NOAA/OAR/PSD R/PSD1 Email : jeffrey.s.whita...@noaa.gov 325 Broadway Office : Skaggs Research Cntr 1D-113 Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users