首页 >后端开发 >Python教程 >如何将堆积条形图中的数据标签居中?

如何将堆积条形图中的数据标签居中?

Linda Hamilton
Linda Hamilton原创
2024-11-16 10:20:03895浏览

How to Center Data Labels in Stacked Bar Charts?

带有居中标签的堆叠条形图

问题:
尝试将数据标签置于堆叠条形中心图表可能具有挑战性,因为简单地将标签居中可能不会产生完美的效果

解决方案 1:使用 bar_label() 绘制 Pandas 条形图

  • 利用 pandas.DataFrame.plot.bar() 或 pandas.DataFrame.plot (kind='bar', stacked=True) 方法。
  • 使用matplotlib.pyplot.bar_label() 函数自动将条形中的标签居中。

解决方案 2:使用矩形属性显式标记

  • 访问每个部分的 matplotlib.patches.Rectangle 对象使用ax.patches。
  • 计算每个矩形的高度、宽度、x 坐标和 y 坐标。
  • 使用 f 字符串创建标签,如果需要,还可以包括其他文本。
  • 使用 ax.text() 绘制标签,将它们对齐到相应标签的中心

解决方案 3:Seaborn Histplot

  • 使用 pandas.melt() 将数据帧转换为长格式。
  • 使用seaborn.histplot()或seaborn.displot()以及参数multiple='stack'进行绘图和离散 = True。
  • 使用 ax.containers 访问补丁,并按照解决方案 2 中的方式继续创建和放置标签。

解决方案说明:

  • 使用 ax.bar_label(c, labels=labels, label_type='center'),其中 labels 是与每个矩形对应的标签列表。
  • 在解决方案 1 中使用 fmt=lambda x: f'{x:.0f}' 显示没有小数位的数字。
  • 对于水平堆叠条形图,请在 pandas.plot() 中使用 kind='barh' 并相应地修改标签计算。

以上是如何将堆积条形图中的数据标签居中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn