You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多层柱状图的阴影柱体添加百分比数据标签

解决方案

要给buyers对应的阴影柱体添加percentage列的数据,你可以通过定位到buyers柱体对应的容器,传入自定义的百分比标签来实现,具体修改如下:

修改后的完整代码

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame({'id': [1, 2, 3],
                   'users': [40, 2, 51],
                   'buyers': [15, 1, 29],
                   'percentage': [37.5000, 50.0000, 56.8627]})

fig, ax = plt.subplots(figsize=(10, 6))

# 绘制总用户柱体
sns.barplot(x='id', y='users', data=df, palette='Blues', edgecolor='grey', alpha=0.7)
# 绘制购买用户阴影柱体
sns.barplot(x='id', y='buyers', data=df, palette='Blues', edgecolor='black', hatch='//')

# 显示总用户柱体的数值
ax.bar_label(ax.containers[0], fontsize=13)
# 给购买用户柱体添加格式化后的百分比标签
ax.bar_label(ax.containers[1], labels=[f'{p:.2f}%' for p in df['percentage']], fontsize=13, padding=5)

plt.show()

关键说明

  • ax.containers的顺序与绘图顺序一致:第一个容器对应先绘制的users柱体,第二个对应后绘制的buyers阴影柱体
  • 通过labels参数传入自定义文本,用列表推导式把数值格式化为带%的字符串,同时保留两位小数
  • padding参数可调整标签与柱体顶部的距离,避免出现重叠问题

内容的提问来源于stack exchange,提问作者Kate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:50:24