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

如何去除Seaborn Heatmap的科学计数法(非注释部分)

解决Seaborn Heatmap主图数值(非注释)科学计数法问题

方法1:自定义颜色条格式化器

直接针对热图的颜色条设置显示格式,精准控制数值展示:

import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

# 替换为你的数据
df = ... 

ax = sns.heatmap(df)
# 用FuncFormatter自定义格式,这里以整数显示百万级数值为例
formatter = ticker.FuncFormatter(lambda x, pos: '{:,.0f}'.format(x))
ax.collections[0].colorbar.formatter = formatter
ax.collections[0].colorbar.update_ticks()

plt.show()

方法2:调整Matplotlib全局显示规则

通过修改全局参数,避免大数值触发科学计数法:

import matplotlib.pyplot as plt
import seaborn as sns

# 关闭偏移量显示,同时设置触发科学计数法的数值范围
plt.rcParams['axes.formatter.useoffset'] = False
plt.rcParams['axes.formatter.limits'] = (-10**7, 10**7) # 超出该范围才用科学计数法,按需调整

# 绘制热图
sns.heatmap(df)
plt.show()

方法3:数据缩放+单位标注

将百万级数据除以1e6缩小数值,同时在颜色条标注单位,从根源避免科学计数法:

import seaborn as sns
import matplotlib.pyplot as plt

# 缩放数据,单位转为百万
df_scaled = df / 1e6
# 绘制热图时标注颜色条单位
ax = sns.heatmap(df_scaled, cbar_kws={'label': '数值(百万)'})
# 颜色条刻度显示整数
ax.collections[0].colorbar.set_ticklabels(['{:.0f}'.format(x) for x in ax.collections[0].colorbar.get_ticks()])

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:02