我有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笔记本中绘图也没有保存任何东西。我做错了什么?
答案 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()