2016-12-01 59 views
0

我有3個數據框,每個數據框都有列A,B,C和D.一個數據框包含值,第二個包含滾動平均值,第三個包含滾動標準差:Python:在多個數據框中從相同位置創建一個圖表

#data 
df = pd.DataFrame(np.random.randint(0,100,size=(1000, 4)), columns=list('ABCD')) 
#rolling mean 
df_mu = df.rolling(window=100).mean() 
#rolling standard deviation 
df_sd = df.rolling(window=100).std() 

我想創建一個有3個系列的一個圖表:A,A的滾動平均值,A的滾動STD。本質上,在一個圖表,我想看df.A,df_mu.A,df_sd.A

我想然後重複該過程B,C,和D.

結果是4個圖,每個圖表有3個系列。我希望這些圖表能夠在iPython筆記本中顯示。

有誰知道我該如何有效地做到這一點?謝謝。

進口matplotlib.pyplot如PLT

#data 
df = pd.DataFrame(np.random.randint(0,100,size=(1000, 4)), columns=list('ABCD')) 
#rolling mean 
df_mu = df.rolling(window=100).mean() 
#rolling standard deviation 
df_sd = df.rolling(window=100).std() 

for col in df.columns: 
    plt.plot(df.index.values, df[col], 'r--', df_mu[col], 'b--', df_sd[col], 'g--') 
    plt.title(col) 
    plt.savefig('C:/Users/test/Google Drive/Working Folder') 
    plt.close()  

我都試過,但它並不在我的IPython筆記本繪製也不保存任何東西。我究竟做錯了什麼?

+0

什麼方面列的你想在圖表中繪製?我的意思是他們是在不同的形狀比相關的意思和std列 – Ali

+0

謝謝阿里。包括NA,他們是相同的長度。當所有數據都可用時,Mu和SD將在圖表的後面開始,但這很好。這有幫助嗎? –

回答

1

線圖則可以通過下面的幾行產生:

import matplotlib.pyplot as plt 

for col in df.columns: 
    plt.plot(df.index.values, df[col], 'r--', df_mu[col], 'b--', df_sd[col], 'g--') 
    plt.title(col) 
    plt.savefig('/path/to/store/plots') 
    plt.close()  
+0

謝謝。我如何在Python筆記本中完成此操作? –

+0

您可以將上面的代碼片段添加到您的代碼中,並應該假設您爲數據框使用相同的名稱,這有幫助嗎? – Ali

+0

謝謝阿里。它不適合我。情節不繪製和文件不保存。 –

相關問題