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

如何在matplotlib中去除条形图标签上的科学计数法

移除条形图数值标签科学计数法的解决方法

你代码中调用的ax.ticklabel_format()仅对坐标轴刻度生效,无法控制bar_label()生成的柱子顶部标签格式,需要单独对标签做格式化配置。

最简修改方案

直接在bar_label方法中传入fmt参数指定输出格式即可,修改后的完整代码如下:

highest_enrollment = course_data.groupby(
    "course_organization")["course_students_enrolled"].sum().nlargest(10)

ax = sns.barplot(x=highest_enrollment.index, 
                 y=highest_enrollment.values, 
                 ci=None, 
                 palette="ch: s=.5, r=-.5")

ax.ticklabel_format(style='plain', axis="y")

plt.xticks(rotation=90)

# 新增fmt参数,%d表示输出普通整数,有小数需求可改为%.1f等格式
ax.bar_label(ax.containers[0], fmt='%d')

plt.show()

进阶格式化需求

如果需要给数值添加千位分隔符等更复杂的格式,可以手动生成自定义标签传入:

# 示例:给数值加千位逗号分隔,保留0位小数
custom_labels = [f'{val:,.0f}' for val in highest_enrollment.values]
ax.bar_label(ax.containers[0], labels=custom_labels)

你当前生成的带科学计数法的问题效果图如下:
条形图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:51:03