2016-08-04 5 views
0

私はtowプロットを使ってデータをグラフ化する予定です。 2番目のサブプロットには、株価、移動平均(ウィンドウ= 5)、移動平均(ウィンドウ= 8)、移動平均(ウィンドウ= 13) 。add_subplot関数を使用したときに凡例が表示されない

株価(インデックスとして日付を使用)の深刻なデータを最初に取得すると、移動平均である深刻なデータを作成するためにemaという関数を定義します。

その後、rsiというデータを作成するためにrsiという関数も作成します。

次に、graph_with_indicatorという次の関数を定義しようとします。 この関数では、最初にすべてのemaと株価をデータフレームとして結合します 次に、rsi seriousを作成します。

次に、最初のデータフレームをプロットするためにadd_subplot(211)を使用しました。 その後、add_subplot(212)を使ってrsiをプロットしました。

実際には、伝説を除いてうまくいきます。 rsi凡例のみ作成できますが、最初のグラフは作成できません。

誰でも私にこれを手伝ってもらえますか?

私の最初のグラフはデータフレームですが、2番目のグラフは重大なものなので、2番目のグラフの伝説を生成できますか?

もう1つの質問があります。実際にすべてのデータを1つのデータフレームにまとめてサブプロットを別々に作成できますか?たとえば、5列のデータフレームを取得し、最初の2つの列を最初のサブプロットに、最後の2つの列を2番目のサブプロットに生成します。ここで

は私のコードです:

def graph_with_indicator(stock): 
    #5,8,13 
    df = pd.DataFrame(stock) 
    name = str(df.columns[0]) 
    windows = [5,8,13] 
    for window in windows: 
     df_tmp = ema(stock,window) 
     df = df.join(df_tmp) 

    stock_rsi = rsi(stock,14) 


    fig = plt.figure() 
    fig.suptitle(name, fontsize=20) 
    ax1 = fig.add_subplot(211) 

    ax1.xaxis.set_visible(False) 
    ax2 = fig.add_subplot(212) 
    ax1.plot(df) 
    ax2.plot(stock_rsi) 
    ax1.legend(loc='upper left') 
    ax2.legend(loc='upper left') 
    plt.subplots_adjust(left= 0.1, bottom= 0.1, right= 0.98, top= 0.9, wspace= 0, hspace= 0.1) 

    plt.show() 

答えて

0

伝説作業を取得するには、次の2行これらに

ax1.plot(df) 
ax2.plot(stock_rsi) 

変更:

ax1.plot(df, label="df") 
ax2.plot(stock_rsi, label="stock_rsi") 

を理由matplotlibの者である理由芸術家は伝説を描くためにラベルが必要です。

+0

ありがとうございます。わかった。 –

関連する問題