带有居中标签的堆叠条形图
问题:
尝试将数据标签置于堆叠条形中心图表可能具有挑战性,因为简单地将标签居中可能不会产生完美的效果
解决方案 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中文网其他相关文章!