繁体   English   中英

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

[英]Plotting list of lists in a same graph in 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()

假设 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包含更多列表,则调整代码。

下面是我为这个案例得到的情节: 样地

使用 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 是一个列表列表。

这是此代码生成的图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM