我想绘制12个图表(每月一个图表),包括左侧y轴上的列'A'
和'B'
以及右侧列'C'
。
下面的代码绘制了左侧的所有内容。
import pandas as pd
index=pd.date_range('2011-1-1 00:00:00', '2011-12-31 23:50:00', freq='1h')
df=pd.DataFrame(np.random.rand(len(index),3),columns=['A','B','C'],index=index)
df2 = df.groupby(lambda x: x.month)
for key, group in df2:
group.plot()
如何分隔列并使用以下内容:group.plot({'A','B':style='g'},{'C':secondary_y=True})
?
答案 0 :(得分:4)
您可以捕获Pandas plot()
命令返回的轴并再次使用它来专门在右轴上绘制C
。
index=pd.date_range('2011-1-1 00:00:00', '2011-12-31 23:50:00', freq='1h')
df=pd.DataFrame(np.random.randn(len(index),3).cumsum(axis=0),columns=['A','B','C'],index=index)
df2 = df.groupby(lambda x: x.month)
for key, group in df2:
ax = group[['A', 'B']].plot()
group[['C']].plot(secondary_y=True, ax=ax)
要获取单个图例中的所有行,请参阅: Legend only shows one label when plotting with pandas