2016-04-15 46 views
0

我可以看到如何使用Matplotlib網站的例子來做到這一點,但只有3行,如果你有100個,會發生什麼?我無法弄清楚用python循環做這件事的方法。所以佈局將matplotlib一個圖表上的多行不知道怎麼做?

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() 

回答

0

plt.plot()通過輸入x值和y值來工作。假設「AA」,「BB」,「CC」值在列表中的y值,你可以這樣做:如果你的數據看起來你已經包含在問題有什麼

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

plt.show() 
+0

喂傑夫,我看到我的數據搞壞了,得去改變它。對於那個很抱歉。我的數據是日期(x軸)10(y軸),AA是我將應用於該行的標籤的示例。所以我需要繪製AA線(改變它的顏色,刻度線標記和其他屬性),然後繼續下一個BB並一直沿着第100條線進行。我「以爲」我嘗試了你提供的方式,但它不起作用,因爲我需要在AA進入BB等時改變線的顏色。我真的沒有看到matplotlib如何做這件事。 – theakson

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

+0

對不起,這不會工作。公司的x軸=日期,y軸是數字。這些字母是標籤。所以第一行將是3/3/15 10 3/4/15 20 3/5/15 30標爲「aa」,然後是另一行3/3/15 11 3/4/15 21 3/5/15 31標爲「bb」等。 – theakson

相關問題