2017-07-17 13 views
-1

同じグラフに2つのリストをプロットするのに役立ちます。線は異なる色でなければなりません。ここで私が試したコードは次のとおりです。2つのリストを同じグラフにプロットするにはどうすればよいですか?

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

あなたの質問とあなたの問題は何ですか?あなたは1つのラインまたは両方のラインを取得しているだけで、彼らは同じ色ですか? –

+0

あなた自身で答えを見つけようとしましたか? matplotlibのドキュメントに行くと、1つのグラフに2行をプロットする方法を非常に簡単に見つけることができます – jacoblaw

+0

ありがとうございます。私はただ一つの行を取得します... –

答えて

2

次の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のカラーリスト

関連する問題