我是Python的新手,正在努力使用matplotlib在一张图上绘制许多曲线。

我有50个数据文件。我已经阅读了所有内容并将它们存储在3D numpy列表中。第一维是文件号,第二维是时间,第三维是要测量的参数(时间,压力等)。对于单个文件,数据可能如下所示:

(时间压力)
1 3.4
2 5.1
3 5.1
4 5.1
5 7.8

我想在一张图表上绘制所有五十个时间与压力的关系曲线。到目前为止,我有:

plt.plot(\
    clipData[0,:,0], clipData[0,:,1],\
    clipData[1,:,0], clipData[1,:,1],\
    clipData[2,:,0], clipData[2,:,1])
plt.show()


这对于前三个曲线来说效果很好,但是我认为必须有一种方法,而无需手动将列表生成为50。我考虑过使用循环将列表构建为长字符串,然后将其推入情节()。

guts = 'clipData[0,:,0], clipData[0,:,1]'
plt.plot(guts)
plt.show


但是我的简单测试清楚地表明我做错了什么。

任何帮助将不胜感激,我敢肯定有一种优雅的方法可以做到这一点。

最佳答案

也许像:

for i in range(50):
    plt.plot(clipData[i,:,0], clipData[i,:,1])
plt.show()


因为当你使用
    guts = 'clipData[0,:,0], clipData[0,:,1]'
guts只是一个不能绘制的字符串。

09-30 19:31