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 : [email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users