bug in plot

matplotlib apparently can’t plot numeric arrays with shape (x,1). Check the code below.
This is an important drawback because for some matrix operations, such as concatenation it is necessary to specify if the vector is a line or a column, and these vector can’t be plotted.
I think this happens for the same reasons matplotlib can’t plot matrices as a multiline plot like matlab. IMHO, the plot command should allow for plotting matrices line-by-line like matlab, it is very useful.

cheers,

Python 2.3.3 (#2, Feb 17 2004, 11:45:40)

[GCC 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)] on linux2

Type “help”, “copyright”, “credits” or “license” for more information.

from matplotlib.matlab import *

Building TTF font cache for non-PS backends. Saving to /home/fccoelho/.ttffont.cache.

Delete this file if you want the cache rebuilt the next time you run

matplotlib.

a= arange(9)

a.shape

(9,)

a.shape=(9,1)

a.shape

(9, 1)

plot(a)

Traceback (most recent call last):

File “”, line 1, in ?

File “/usr/lib/python2.3/site-packages/matplotlib/matlab.py”, line 1030, in plot

try: lines =  gca().plot(*args, **kwargs)

File “/usr/lib/python2.3/site-packages/matplotlib/axes.py”, line 1324, in plot

self.add_line(line)

File “/usr/lib/python2.3/site-packages/matplotlib/axes.py”, line 381, in add_line

self.update_datalim(corners)

File “/usr/lib/python2.3/site-packages/matplotlib/axes.py”, line 361, in update_datalim

self.dataLim.update(xys, not self.has_data())

TypeError: only rank-0 arrays can be converted to Python scalars.

fiocruz4.jpg
Flávio Codeço Coelho, PhD

Programa de Computação Científica

Fundação Oswaldo Cruz

Rio de Janeiro – Brasil

···