Matplotlib:从2D列表绘制多条线

时间:2018-07-30 17:22:46

标签: python matplotlib

我无法从2D列表中绘制多条线。 我目前有以下数据集。

x = np.linspace(0, 4, 5)
y = [[0.32,1.25,2.36,3.36,3.52],[0.32,1.25,2.36,3.36,3.52]]

并绘制我实现的图

for i in range(len(y)):
    for x in range(len(y[i])):
        plt.plot(x[x], y[I][x])
plt.show()

我如何拥有它,以便在一张图中有多条线,从而从2d数组中绘制出来?

2 个答案:

答案 0 :(得分:1)

为避免循环,您可以将y转换为numpy数组transpose it with y.T,使其与x数组对齐,然后简单地绘制两个数组:

x = np.linspace(0, 4, 5)
y = np.asarray([[0.32,1.25,2.36,3.36,3.52],[0.2,1.5,2.6,2.3,1.5]])
print(y)

plt.plot(x, y.T)
plt.show()

答案 1 :(得分:0)

删除for循环:

plt.plot(x,y[0],x,y[1])
plt.show()

这应该给您想要的结果。但是,您的图是相同的,因此总是看起来像一张图。如果您获得其他数据,它将起作用。

graph example with different y data