On Tue, May 31, 2011 at 1:28 PM, Eric Firing wrote:
On 05/31/2011 08:03 AM, Benjamin Root wrote:

On Tue, May 31, 2011 at 12:58 PM, Eric Firing <efiring@hawaii.edu
<mailto:efiring@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.mannucci@jpl.nasa.gov
<mailto:anthony.j.mannucci@jpl.nasa.gov>
> <mailto:anthony.j.mannucci@jpl.nasa.gov
<mailto:anthony.j.mannucci@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
>
>     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,
>
> 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
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."

Ben Root