matplotlib 使用secondary_y轴绘制groupby数据

2q5ifsrm  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(102)

我想绘制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})

bjg7j2ky

bjg7j2ky1#

您可以捕获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打印时,图例仅显示一个标注

8mmmxcuj

8mmmxcuj2#

如今,你可以

for key, group in df2:
    group.plot(secondary_y='C')

字符串

相关问题