Python:在多个数据帧中从相同位置创建一个图表

时间:2016-12-01 07:28:03

标签: python charts

我有3个数据框,每个数据框有A,B,C和D列。一个数据框包含值,第二个包含滚动平均值,第三个包含滚动标准差:

#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&#f;滚动平均值,A&#f;滚动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笔记本中绘图也没有保存任何东西。我做错了什么?

1 个答案:

答案 0 :(得分: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()