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

如何在Seaborn柱状图的柱子内部添加数值?

在Seaborn柱状图柱子内部添加数值标签

当然可以实现这个需求!其实操作起来很简单,只需要在绘制完柱状图后,遍历每个柱子元素,然后在柱子的中心位置添加对应的数值文本即可。

下面是修改后的完整代码,我会给你拆解关键步骤:

import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
ax = sns.barplot(x="day", y="total_bill", data=tips)

# 遍历每个柱子,添加内部数值标签
for patch in ax.patches:
    # 获取当前柱子的高度(对应y轴的实际数据值)
    bar_height = patch.get_height()
    # 计算柱子的水平中心坐标
    bar_center_x = patch.get_x() + patch.get_width() / 2
    # 在柱子垂直中心位置添加数值标签
    ax.text(
        bar_center_x, 
        bar_height / 2, 
        f'{bar_height:.2f}',  # 保留两位小数,若要显示整数可改成f'{int(bar_height)}'
        ha='center', 
        va='center', 
        fontsize=10, 
        color='white'
    )

关键细节说明:

  • ax.patches:这个对象包含了图表中所有的柱子元素,遍历它就能逐个处理每一根柱子
  • patch.get_height():获取柱子的高度值,也就是对应的数据点数值
  • patch.get_x() + patch.get_width() / 2:计算出柱子的水平中心位置,确保文字落在柱子正中间
  • ax.text():用来添加文本标签,ha='center'和va='center'分别保证水平、垂直方向居中,白色文字在深色柱子里会更醒目,你也可以根据柱子颜色调整文字颜色

如果是像你说的要显示1-4这类整数,只需要把格式化字符串改成f'{int(bar_height)}'就可以啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:06