matplotlib 根据groupby结果显示共享条形图

mxg2im7a  于 2023-02-16  发布在  其他
关注(0)|答案(1)|浏览(132)

我有这种类型的 Dataframe :

origin  delta
month                
2021-09  admin  -1000
2021-09    ext     20
2021-10    ext    648
2021-11  admin  -1000
2021-11    ext    590
monthframe (32,3)

(我重新处理了列中日期的“month”索引,最初解析为datetime)我尝试重新生成Pandas dataframe groupby plotPandas groupby results on the same plot

monthframe.groupby("origin").plot(kind="bar",stacked=True, legend=True, xlabel="Month", ylabel="Delta", layout=(20,10),subplots=False)

将月份设置为前面的索引,以便它将作为x工作。
但是我不能让它在同一个图表中显示不同颜色的条形图,我只有一个图表

monthframe.plot(kind="bar",stacked=True, legend=True, xlabel="Month", ylabel="Delta", layout=(20,10),subplots=False)

但是所有的起源都被合并到同一个月份,所有的都是蓝色的,这真的没有什么信息。
我试了我能找到的一切(之前设置斧头;等等,但是该图甚至不考虑其命名的参数)。
请问该怎么办?

a11xaf1n

a11xaf1n1#

使用matplotlib时,您必须重塑 Dataframe :

ax = (monthframe.set_index('origin', append=True)['delta'].unstack()
                .plot(kind='bar', stacked=True, legend=True, rot=45, 
                      xlabel='Mois', ylabel='Consommation'))
plt.tight_layout()
plt.show()

整形输出:

>>> monthframe.set_index('origin', append=True)['delta'].unstack()

origin    admin    ext
month                 
2021-09 -1000.0   20.0
2021-10     NaN  648.0
2021-11 -1000.0  590.0

相关问题