如何在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
相关产品推荐
相关产品推荐

