william ratcliff wrote:
> Here, I've changed the number of contours to 15 and 45 respectively--and 
> the problem still remains.  Do I need to manually set the ranges of the 
> segments on the colorbar or something?  It would seem to me that somehow 
> the new limits are not being used in determining the boundaries of which 
> color is used for which set of values.  I should also mention that I am 
> using a masked array for z (which is what gives rise to the white square 
> in the bottom right corner).

I was not suggesting just changing the *number* of contours, I was 
suggesting explicitly setting the boundaries. This is almost always a 
better strategy; the signature in which a number of contours is 
specified is intended only for quick and dirty exploration (and Matlab 
compatibility, which led to the overly complex set of possible 
signatures for contour in mpl). When contour is called as you called it, 
it doesn't know or care anything about clim; it finds the range of your 
input data and linearly spreads the requested number of values over 
approximately that range.  (Actually, it uses a ticker to do this, so 
contour values will fall on reasonably nice numbers.) I suspect there is 
an unmasked high value that is making the auto-detected range too large. 
What do you get from

print z.min(), z.max()


If you don't set the clim, it is set automatically based on the contour 
levels; so if you set the levels, you don't need to set the clim.

Colorbar gets its information from the ContourSet object.


Eric
> 
> Thanks,
> William
> 
> On Mon, May 18, 2009 at 5:16 PM, Eric Firing <efir...@hawaii.edu 
> <mailto:efir...@hawaii.edu>> wrote:
> 
>     william ratcliff wrote:
> 
>         Hi!   I have a question about contours and clim within
>         matplotlib.  I load in some files and do some processing and
>         generate a contour plot using:
> 
> 
>         cmap=pylab.cm.jet
>         mycontour=pylab.contourf(x,y,z,95)#,
> 
> 
> 
> 
>  
> 
>     You don't really want 95 contour levels, do you?
>     Instead of using set_clim, set the contour levels you want, and I
>     suspect everything will come out OK.  E.g.,
> 
>     pylab.contourf(x,y,z,pylab.linspace(160, 500, 18))
> 
>     Eric
> 
>         mycontour.set_clim(vmin=160, vmax=500)
>         mycbar=pylab.colorbar()
>         mycbar.set_clim(vmin=160, vmax=500)
>         pylab.xlim((17,19.6))
>         pylab.show()
> 
> 
>         However, the behavior is rather unexpected for me.  I find that
>         the colorbar has values rather stretched for values above the
>         cutoff specified in clim.  Also, are the values normalized between
>         the limits set in clim, or am I loosing a lot of dynamic range?
> 
> 
>         Thanks,
>         William

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to