|
From: John H. <jdh...@ac...> - 2005-01-14 17:12:43
|
>>>>> "seberino" == seberino <seb...@sp...> writes:
seberino> Imagine your arrays had points (Cartesian position
seberino> vectors) all over the place at completely random points
seberino> in space. The 'shape' of this plot depends on max and
seberino> min values of each coordinate. I believe Mathematica
seberino> plotting would automagically calculate these max and min
seberino> values and set plot ranges for you. This is why 'shape'
seberino> attribute of Matplotlib/Numarray seems awkward and
seberino> unnecessary to me unless I'm missing something.
There are a variety of issues here.
- The "shape" attribute comes form Numeric/numarray and is outside
the realm of matplotlib. matplotlib plots numerix arrays.
- The pcolor interface is determined by matlab. matlab has a pcolor
function which I have tried to implement faithfully. To the
extent that matplotlib has been successful, this is due in part
because matlab has a good interface for plotting and replicating
it generally, is a good thing.
- Storing the "shape" of a data set allows for memory and efficiency
savings. To take your example of a set of x,y,z points, you are
right you cold reconstruct rectilinear grid from this data -- one
might have to use interpolation but it can be done -- but it would
require a lot of unnecessary computation for data which already
lives on a grid. So pcolor assumes your data are on a rectilinear
grid and it is incumbent upon you to get it into that form.
The meshgrid function takes regularly sampled vector data and
turns it into a rectilinear grid (this is also a matlab function).
The matlab griddata function (which is not yet implemented in
matplotlib) does the same for irregularly sampled data.
JDH
|