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

使用matplotlib绘制堆叠条形图时如何将数值标签保留1位小数

解决方案

你遇到的标签小数位数过长问题是浮点数运算精度误差导致的:堆叠条形图计算偏移量时的底层二进制浮点存储会产生微小偏差,哪怕输入数据只有1位小数,调用patch.get_width()拿到的数值也可能出现多位小数的情况。

你只需要修改遍历条形添加标签的代码,将输出的数值做1位小数格式化即可,修改后的代码片段如下:

for patch in ax.patches:
    x,y = patch.get_xy()
    w, h = patch.get_width(), patch.get_height()
    # 格式化输出为1位小数,自动四舍五入
    ax.text(x+w/2, y+h/2, f"{w:.1f}", 
            ha='left', va='center', 
            color='black', fontweight='normal', fontsize=9, 
           )

如果不习惯用f-string格式化,也可以用round函数实现相同效果:

ax.text(x+w/2, y+h/2, str(round(w, 1)), 
        ha='left', va='center', 
        color='black', fontweight='normal', fontsize=9, 
       )

推荐使用f-string格式化的方案,它会统一输出格式,即使数值是整数也会显示为X.0的格式,和你原始输入数据的展示形式保持一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:01