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

如何使用 Python 将堆积条形图中的数据标签完美居中?

Susan Sarandon
Susan Sarandon原创
2024-11-19 07:06:02312浏览

How to Perfectly Center Data Labels in Stacked Bar Charts Using Python?

将堆叠条形图中的数据标签居中

创建堆叠条形图时,确保数据标签在图表的每个部分中正确居中可能具有挑战性酒吧。出现此问题的原因有多种,例如条形的高度、条形之间的间距以及标签的字体大小。

使用 Pandas 和 Matplotlib.pyplot

解决这个问题的一个强大而简洁的方法涉及使用 Pandas 和 Matplotlib.pyplot。 Pandas 提供了一种方便的方式来表示和操作数据,而 Matplotlib.pyplot 提供了用于创建可视化的强大工具集。以下是如何使用这种方法将数据标签集中在堆积条形图中:

  1. 使用您想要绘制的数据创建一个 Pandas DataFrame。
  2. 使用 .plot(stacked =True, kind='bar') 方法生成堆积条形图。
  3. 使用 ax.containers 中的 for c 迭代图中的容器:.
  4. 使用 fmt=lambda x : f'{x:.0f}' 如果 x > 0 else '' 自定义标签格式,删除小数位并仅显示非零值。
  5. 调用 ax.bar_label(c, fmt=fmt) 将数据标签在条形图的每个部分中居中。

使用 Seaborn

Seaborn 是一个基于 Matplotlib 构建的高级 API,提供了另一种创建堆积条形图的方法。尽管 Seaborn 不直接支持堆叠,但它提供了使用 sns.histplot 或 sns.displot 创建堆叠图的选项。

对于使用 sns.displot 的图形级绘图,请遍历轴,然后遍历容器每个轴内。对于每个容器,使用 ax.bar_label(c, fmt=fmt) 将数据标签居中。

带补丁的原始方法

直接与 Matplotlib.patches.Rectangle 对象一起使用的方法可以用于提取堆叠条的每个部分的值和位置。此方法涉及:

  1. 使用 .patches 属性访问补丁列表。
  2. 迭代补丁并提取高度、宽度、x 坐标和 y 坐标。
  3. 计算每个部分的中心点并相应地放置标签。
  4. 根据需要自定义标签文本。

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

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