To be honest, I think the native array storage order matters a lot.
When you have a large dataset, transposing the matrix is not a cheap command.
But I also understand the logic of plotting column against column.
However, a 1D vector in Python is by default a row, while in Matlab it is a column.
What are you going to do if a 1D row is given as first argument and a matrix as second???
I don’t like the Matlab model when one matrix is passed. It should really plot the first column along
the x-axis and all the other columns along y. Like your 2nd option below, but with NxM array.
It would then be very nice to have an optional argument to the function
to plot all rows against the first row. That would be very easy to
implement and keep everybody happy.
As you said, there will be many more opinions,
To summarize, the options seem to be:
Leave plot argument parsing alone.
Accept an Nx2 array in place of a pair of arguments containing x and y.
Implement the Matlab model.
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.