使用secondary_y轴绘制groupby数据
我想画12个图(每个月一个图),左边的y轴上显示列 'A'
和 'B'
,右边的y轴上显示列 '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})
呢?
2 个回答
0
现在,你只需要这样做
for key, group in df2:
group.plot(secondary_y='C')
7
你可以获取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)
如果你想把所有的线条放在一个图例里,可以查看这个链接:图例在用Pandas绘图时只显示一个标签