在1d列表中绘制单行2d numpy数组

时间:2013-04-08 02:55:50

标签: python arrays numpy matplotlib

我想从一个二维numpy数组中的一行绘制python中的一个列表。例如,我想使用matplotlib row'i'进行绘图,如下所示

  |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 个答案:

答案 0 :(得分: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

问题是x的{​​{1}}和y参数必须具有相同的形状(或者至少要形成相同的第一个条目)。

plot

您的程序生成的某个项目可能实际具有您认为它的形状吗?

如果您将列表与numpy数组一起使用(In [6]: x.shape Out[6]: (11,) In [7]: y.shape Out[7]: (6, 11) In [8]: y[i].shape Out[8]: (11,) 可能会将列表转换为数组),这也应该有效:

plt.plot