matplotlib在一张图表上的多行不知道如何做到这一点?

时间:2016-04-15 19:55:38

标签: python matplotlib

我可以看到如何使用Matplotlib网站上的示例来做到这一点但是只有3行,如果你有100个会怎么样?我无法弄清楚使用python循环的方法。所以布局将是

3/3/15 aa 10
3/4/15 aa 20
3/5/15 aa 30
3/3/15 bb 11
3/4/15 bb 21
3/5/15 bb 31
... 100 more of same 
3/3/15 cc 101
3/4/15 cc 102
3/5/15 cc 103

这里是来自Matplotlib网站的代码,但我真的不知道如何循环我的数据集。

plt.plot(x, np.sin(x) + x + np.random.randn(50))
plt.plot(x, np.sin(x) + 0.5 * x + np.random.randn(50))
plt.plot(x, np.sin(x) + 2 * x + np.random.randn(50))

plt.show()

2 个答案:

答案 0 :(得分:0)

plt.plot()通过输入x和y值来工作。假设'aa','bb','cc'值是列表中的y值,您可以执行以下操作:

for yval in list1:
    plt.plot(x, yval)

plt.show()

答案 1 :(得分:0)

如果您的数据与问题中包含的内容类似,则首先需要将其分成要绘制的列表或数组。完成后,这样的示例代码应该可以工作:

import matplotlib.pyplot as plt
import numpy as np

time = np.arange(0,500)
aa = np.random.randn(500)
bb = np.random.randn(500)
cc = np.random.randn(500)
data = [aa,bb,cc]

plt.figure()
for y in data:
    plt.plot(time,y)

plt.show()  

Sample plot results