使用secondary_y轴绘制分组数据

Mic*_*hal 2 python plot matplotlib pandas

我想绘制12个图表(每月一个图表),包括列'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()
Run Code Online (Sandbox Code Playgroud)

如何分离柱和使用这样的:group.plot({'A','B':style='g'},{'C':secondary_y=True})

Rut*_*ies 5

您可以捕获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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

要在单个图例中获取所有行,请参见: 图例在与熊猫一起绘制时仅显示一个标签