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

Seaborn散点图、热力图及透视表去除科学计数法方法咨询

消除Seaborn可视化及关联透视表场景下的科学计数法

触发原因

Matplotlib默认的轴域格式化机制,会在数值绝对值过大或过小时自动切换为科学计数法展示;pandas生成透视表、Seaborn渲染热力图标注时会继承这套格式规则,最终导致散点图坐标轴、透视表打印结果、热力图标注三个环节同时出现非预期的科学计数法。

对应代码调整方案

1. 散点图轴域科学计数法消除

在原有散点图代码基础上,直接获取当前绘图的轴对象,强制关闭科学计数法格式化规则:

# 原有散点图代码
plt.figure(figsize=(15,7))
sns.scatterplot(x='Price_in_Lac', y='Kilometers_Driven', hue='Location', data=df)

# 新增配置:强制x、y轴使用普通数值格式,关闭科学计数法
current_ax = plt.gca()
current_ax.xaxis.get_major_formatter().set_scientific(False)
current_ax.yaxis.get_major_formatter().set_scientific(False)
plt.show()

如果需要对脚本内所有绘图任务统一生效,可以在代码最开头添加全局配置,无需后续逐图调整:

# 全局关闭所有轴域的科学计数法触发规则
plt.rcParams['axes.formatter.useoffset'] = False
plt.rcParams['axes.formatter.scientific'] = False

2. 透视表与热力图标注的科学计数法消除

  • 先解决pandas透视表打印时的科学计数法问题,提前配置pandas浮点数显示规则:
# 配置pandas全局显示规则,所有浮点数固定保留2位小数,不触发科学计数法
pd.set_option('display.float_format', lambda val: f'{val:.2f}')
  • 再调整热力图的标注格式参数,避免Seaborn自动用科学计数法渲染标注值:
df_hm = df.pivot_table(index='Brand', columns='Location', values="Price_in_Lac", aggfunc=np.median)
f, ax = plt.subplots(figsize=(15,10))
# 新增fmt参数,强制标注使用固定小数位的普通数值格式
sns.heatmap(df_hm, cmap='coolwarm', linewidths=.5, annot=True, fmt='.2f', ax=ax)

参数适配提示:如果需要展示整数级别的数值(例如大里程、大金额数值),将fmt='.2f'替换为fmt='.0f'即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 09:06:04