On 05/31/2011 08:37 AM, Benjamin Root wrote:
>
>
> On Tue, May 31, 2011 at 1:28 PM, Eric Firing <efir...@hawaii.edu
> <mailto:efir...@hawaii.edu>> wrote:
>
>     On 05/31/2011 08:03 AM, Benjamin Root wrote:
>
>
>
>         On Tue, May 31, 2011 at 12:58 PM, Eric Firing
>         <efir...@hawaii.edu <mailto:efir...@hawaii.edu>
>         <mailto:efir...@hawaii.edu <mailto:efir...@hawaii.edu>>> wrote:
>
>             On 05/31/2011 05:50 AM, Benjamin Root wrote:
>          >
>          >
>          > On Tue, May 31, 2011 at 10:34 AM, Mannucci, Anthony J (335G)
>          > <anthony.j.mannu...@jpl.nasa.gov
>         <mailto:anthony.j.mannu...@jpl.nasa.gov>
>         <mailto:anthony.j.mannu...@jpl.nasa.gov
>         <mailto:anthony.j.mannu...@jpl.nasa.gov>>
>          > <mailto:anthony.j.mannu...@jpl.nasa.gov
>         <mailto:anthony.j.mannu...@jpl.nasa.gov>
>         <mailto:anthony.j.mannu...@jpl.nasa.gov
>         <mailto:anthony.j.mannu...@jpl.nasa.gov>>>> wrote:
>          >
>          >     The following program seems to work with contour/contourf.
>             However
>          >     the documentation for the contourf function states
>          >
>          >     contour(X,Y,Z)
>          >
>          > "/X/, /Y/, and /Z/ must be arrays with the same dimensions."
>          >
>          >     I am finding that contour works if the dimension of X and Y
>             are 1,
>          >     but Z must be two-dimensional. The following program seems to
>             bear
>          >     this out. Are the arrays x and y below two-dimensional,
>         or is the
>          >     documentation misleading? Thanks for your help.
>          >
>          >     import numpy as N
>          >     import pylab as PLT
>          >
>          >     lons = N.linspace(-5.,5.,5) # Is this a one or two
>             dimensional array?
>          >     lats = N.linspace(-3.,3.,4)
>          >
>          >     z = N.zeros((len(lats), len(lons)))
>          >     for i in range(len(lons)):
>          >          for j in range(len(lats)):
>          >              z[j,i]=i+j
>          >
>          >     PLT.clf()
>          >     PLT.contourf(lons,lats,z)
>          >     PLT.colorbar()
>          >     PLT.show()
>          >
>          >     -Tony
>          >
>          >
>          > Tony,
>          >
>          > contour and contourf seems to take advantage of numpy's
>         broadcasting
>          > feature, so it is probably more correct to say that X and Y must
>             be at
>          > least broadcastable to the shape of Z.  I think there are a
>         number of
>
>             Not quite; if x and y are 1-D, meshgrid is called to make
>         2-D versions,
>             which must then match Z. Broadcasting is not used or
>         supported. So, the
>             contour docstring was not updated when this functionality
>         was added,
>             long ago.  Consider it an undocumented feature, in need of
>             documentation.
>
>             Eric
>
>
>         Well, (as a bit of a cop-out) in my edit, I didn't say that they
>         were
>         broadcasted, only that they must be broadcastable to the same shape.
>         Would that suffice, or should I re-word that?
>
>
>     It would not be correct.
>
>     x and y must both be 2-D, with the same shape as z; or they must
>     both be 1-D such that len(x) is the number of columns in z and
>     len(y) is the number of rows.
>
>     Eric
>
>
> Gotcha, I didn't think about the mixed 1-D and 2-D case.
>
> In addition, is the note in the contour doc about masked arrays still
> valid, or can this be removed/updated?
>
> "*Z* may be a masked array, but filled contouring may not handle
> internal masked regions correctly."

Good catch.  Ian Thomas fixed the contouring algorithm so that it 
handles masked regions perfectly.

Eric

>
> Ben Root
>


------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger. 
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today. 
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to