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 |