来自 Pandas 数据框的 Matplotlib 中堆叠条形图中标签的问题

问题描述

我有一个带有列(例如“Col”)的数据框,其中的值来自此列表 ['PO101','NI101','NE101']。

计数为:

  • PO101 = 30000
  • NI101 = 5000
  • NE101 = 3000

我试图在堆积条形图上显示有多少个。

我使用以下代码创建了堆积图:

df.assign(dummy=1).groupby(['dummy','Col']).size().to_frame().unstack().plot(
    kind='bar',stacked=True,legend=True)

这会创建图表,但图例具有奇怪的元组值,其中包含如下虚拟:

enter image description here

所以我把上面的图例设为False,并使用下面的方式来生成新的图例。

current_handles,_ = plt.gca().get_legend_handles_labels()
reversed_handles = reversed(current_handles)
labels = reversed(df['Col'].unique())
plt.legend(reversed_handles,labels,loc='lower right')

这生成了具有正确名称的图例,但是,它没有向我显示正确的颜色代码,如下所示:

enter image description here

绿色(图表中最大的部分)应该是 PO101,而是显示为 NI101。

谁能解释一下为什么?

我认为生成图表所遵循的顺序和列出唯一值的顺序可能不同。

感谢这里的一些指导。

编辑: 附上图表输出的截图供您参考。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)