On Tue, May 31, 2011 at 2:38 PM, Eric Firing <efir...@hawaii.edu> wrote:
> 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
>
>
When did that happen? I can make it a "versionadded" note so that users of
older versions won't be confused.
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