2013-04-08 59 views
2

我想从一个2维numpy数组中绘制一条单行对照python中的1d列表。例如,我想使用matplotlib行绘制的 'i' 如下对1d列表绘制单排2d numpy数组

|0 0 0 0 0| 
    |1 1 1 1 1| 
i |2 2 2 2 2| 
    |. . . . .| 
    |n n n n n| 

[0, 100, 200, 300, 400] 

什么我现在是:

plt.plot(list1, 2dimArray[i]) 

,但是这是行不通的。当我对1d列表绘制1d列表时,我有这个功能,但我必须去多维并选择numpy。

有没有办法做到这一点?

+1

如果'A'是你的二维数组,而'x'您1D列表,'plt.plot(x,A [i,:])'有效吗? – 2013-04-08 03:09:28

+0

你的错误是什么? – askewchan 2013-04-08 03:13:03

回答

2

使用从下面的评论中的数据,这个工作对我来说:

In [1]: import numpy as np 

In [2]: x = np.arange(0,1100,100) 

In [3]: y = np.random.rand(6,11) 

In [4]: i = 2 

In [5]: plt.plot(x, y[i]) 
Out[5]: [<matplotlib.lines.Line2D at 0x1043cc790>] 

plot of row 2

的事情是,在xy参数plot必须具有相同的形状(或者至少相同的第一个条目)。

In [6]: x.shape 
Out[6]: (11,) 

In [7]: y.shape 
Out[7]: (6, 11) 

In [8]: y[i].shape 
Out[8]: (11,) 
你的程序生成

也许有你的项目并不实际上有形状你相信它呢?

,如果你同时使用了list和numpy的阵列(plt.plot可能列表转换为数组)这也应该工作:

In [9]: xl = range(0, 1100, 100) 

In [10]: plt.plot(xl, y[i]) 
Out[10]: [<matplotlib.lines.Line2D at 0x10462aed0>] 
+0

这是我得到的错误: ValueError:x和y必须具有相同的第一维 – sgchako 2013-04-08 15:35:48

+0

您能告诉我们b.shape和a.share是什么吗? – askewchan 2013-04-08 15:40:56

+0

x:如此构建的列表[0,100,200,300,400,500,600,700,800,900,1000] y:2dim数组构造为这样的np.zeros((6,11)) – sgchako 2013-04-08 15:46:19