see 
http://matplotlib.1069221.n5.nabble.com/cmap-set-bad-not-showing-any-effect-with-pcolor-td27530.html

On Dec 1, 2013, at 10:11 AM, lin.h...@europe.com wrote:

> Hi,
> 
> I m trying to plot some data with pcolor. The data should be plotted on a 
> ring. Inside and outside of the ring should be white area. However, now I 
> have black area. Where is my mistake? Minimal working example:
> 
> from matplotlib import cm
> import matplotlib.pyplot as plt
> from pylab import *
> 
> import numpy as np
> import scipy as sp
>    
> X = np.arange(-1.0, 1.01, 0.01)
> Y = np.arange(-1.0, 1.01, 0.01)
> X, Y = np.meshgrid(X, Y)
> 
> [r, R] = [0.25, 1.0]
> an = sp.linspace(0,2*sp.pi,100)
> 
> fig = plt.figure(1, figsize=(6,6))
> 
> ax = fig.add_subplot(111, aspect = 'equal')
> Z = X**2 + Y**2
> Z[(X**2+Y**2 < r**2) | (X**2+Y**2 > R**2)] = np.ma.masked
> cm.hot.set_bad('white', alpha=None)
> plot = pcolor(X, Y, Z, cmap=cm.hot)


I think part of the problem is that Z is not a masked_array.  This works for 
me.  I set_bad to green to show the effect.  

Z = np.ma.masked_array(X**2 + Y**2, 
                       mask = (X**2+Y**2 <= r**2) | (X**2+Y**2 > R**2))
cm.hot.set_bad('green', alpha=None)
plot = pcolormesh(X, Y, Z, cmap=cm.hot)

> plt.plot(r*sp.cos(an), r*sp.sin(an), 'k')
> plt.plot(R*sp.cos(an), R*sp.sin(an), 'k')
> axis([-1.0, 1.0, -1.0, 1.0])
> 
> plt.show()


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to