2013-04-08 95 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