在Python中将列表列表绘制在同一图表中

2024-04-23 21:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将(x,y)绘制为y = [[1,2,3],[4,5,6],[7,8,9]]

说,len(x) = len(y[1]) = len(y[2])。。 y的长度由用户输入决定。我想在同一个图中绘制y的多个图,即(x, y[1],y[2],y[3],...)。当我尝试使用循环时,它会说dimension error

我也试过:plt.plot(x,y[i] for i in range(1,len(y)))

我该怎么画?请帮忙。

for i in range(1,len(y)):
plt.plot(x,y[i],label = 'id %s'%i)
plt.legend()
plt.show()

Tags: 用户inidforlenplotshow绘制
2条回答

假设x有一些示例值,下面是可以为您提供所需输出的代码。

import matplotlib.pyplot as plt
x = [1,2,3]
y = [[1,2,3],[4,5,6],[7,8,9]]
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("A test graph")
for i in range(len(y[0])):
    plt.plot(x,[pt[i] for pt in y],label = 'id %s'%i)
plt.legend()
plt.show()

假设:xy中的任何元素具有相同的长度。 其思想是逐元素读取,从而构造列表(x,y[0]'s)(x,y[1]'s)(x,y[n]'s

编辑:如果y包含更多列表,则调整代码。

下面是我得到的这个案子的情节: Sample plot

使用for循环生成绘图,并在for循环之后使用.show()方法。

 import matplotlib.pyplot as plt
 for impacts in impactData:
     timefilteredForce = plt.plot(impacts)
     timefilteredForce = plt.xlabel('points')
     timefilteredForce = plt.ylabel('Force')

 plt.show()

impactData是一个列表列表。

Here's the plot this code generated.

相关问题 更多 >