2017-07-17 37 views
-1

請幫我在同一張圖上繪製兩個列表。線應該是不同的顏色。以下是我試過的代碼:如何在同一個圖中繪製兩個列表,但使用不同的顏色?

import matplotlib.pyplot as plt 
train_X = [1,2,3,4,5] 
train_Y = [10, 20, 30, 40, 50] 
train_Z = [10, 20, 30, 40, 50,25] 
alpha = float(input("Input alpha: ")) 
forecast = [] for x in range(0, len(train_X)+1): 
    if x==0:  
     forecast.append(train_Y[0]) 
    else: 
     forecast.append(alpha*train_Y[x-1] + (1 - alpha) * forecast[x-1]) 
plt.plot(forecast,train_Z,'g') 
plt.show() 
+0

你的問題和你的問題是什麼?你只有一條線或兩條線,它們是相同的顏色? –

+0

你甚至試圖自己找到答案嗎?只要去matplotlib文件,它將非常容易找出如何在一張圖上繪製兩條線 – jacoblaw

+0

感謝您的回答。我只得到一行... –

回答

2

您應該使用plt.plot兩次來繪製兩行。

我不知道你的X軸是什麼,但顯然你應該創建另一個數組/列表作爲你的X值。

然後使用plt.plot(x_value,forecast, c='color-you-want')plt.plot(x_value,train_z, c='another-color-you-want')

。有關更多詳細信息,請參閱pyplot文檔。

0

竊取另一個答案借款,這似乎工作:

# plt.plot(forecast,train_Z,'g') # replace this line, with the following for loop 

for x1, x2, y1,y2 in zip(forecast, forecast[1:], train_Z, train_Z[1:]): 
    if y1 > y2: 
     plt.plot([x1, x2], [y1, y2], 'r') 
    elif y1 < y2: 
     plt.plot([x1, x2], [y1, y2], 'g') 
    else: 
     plt.plot([x1, x2], [y1, y2], 'b') # only visible if slope is zero 

plt.show() 

enter image description here

對方回答:python/matplotlib - multicolor line

當然,與任何更換'r''g''b'值其他https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot顏色列表

相關問題