Below is the last (or nearly so) message of a thread from last summer. 
I have now implemented option 3 in svn, so:

If y is 2-D, plot(y) plots the columns of y against the row-index.

If x is 1-D and y is 2-D, plot(x,y) plots the columns of y against x. 
(In this case, x can also be 2-D if it is a single column.)

If x is 2-D and y is 1-D, plot(x,y) plots y against each successive 
column of x.  (Again, y can also be a single column.)

If x and y are both 2-D, plot(x,y) plots columns of y against the 
corresponding columns of x.  They must have the same number of columns.

All of this is consistent with Matlab, as far as I know.  Apart from 
this compatibility aspect, the design tradeoff is between the appeal of 
plotting rows, on the grounds that they correspond to C storage order, 
versus the appeal of plotting columns, on the grounds that one tends to 
think of columns in a table as the natural vectors to be plotted.  I 
don't think it makes much difference in efficiency; transposing is cheap 
in numpy.  It is possible that plotting non-contiguous values triggers 
an additional array copy somewhere in the chain of operations.  I have 
not tried to figure out whether it does, or what the time penalty would 
be if it does, but I strongly doubt it would be a noticeable fraction of 
the total plot generation time.

The changes are only very lightly tested so far, so please look for bugs.

Eric


Mark Bakker wrote:
> You are right, concerning your comment below.
> That will work just fine,
> Mark
> 
> On 7/13/06, *Eric Firing* <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
> 
> 
> 
>     But why is this better than the following?
> 
>     plot(Z[0,:], Z[1:,:])
> 
>     The latter would accomplish the same, be completely consistent with
>     option 4, be completely explicit and unambiguous, require no more typing
>     than using a kwarg, require no extra logic in the plot code, and
>     require
>     no extra documentation for the plot command.
> 
>     Eric
>      >
>      > As you said, there will be many more opinions,
>      >
>      > Mark
>      >
>      >
>      >
>      >     To summarize, the options seem to be:
>      >
>      >     1) Leave plot argument parsing alone.
>      >     2) Accept an Nx2 array in place of a pair of arguments
>     containing x
>      >     and y.
>      >
>      >     3) Implement the Matlab model.
>      >     4) Implement the Matlab model, but taking rows instead of
>     columns in an
>      >     X or Y array that is 2-D.
>      >
>      >     I am open to arguments, but my preference is the Matlab
>     model.  I don't
>      >     think that the difference in native array storage order
>     matters much.
>      >     It is more important to have the API at the plot method and
>     function
>      >     level match the way people think.
>      >
>      >     Eric

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to