0

0

seaborn 热力图怎么让标注数字只显示两位小数?

舞姬之光

舞姬之光

发布时间:2026-01-23 20:11:39

|

903人浏览过

|

来源于php中文网

原创

最简单方法是用fmt=".2f"强制保留两位小数;需配合annot=True使用,否则无效;若数据为object类型或自定义annot数组,fmt将被忽略;显示异常时应检查数据类型并预处理。

seaborn 热力图怎么让标注数字只显示两位小数?

直接用 fmt=".2f" 参数

这是最简单也最常用的方法:fmt=".2f" 会强制所有标注数字保留两位小数,不四舍五入到整数、不显示科学计数法,也不受原始数据类型干扰。Seaborn 默认的 fmt".2g",它在数值较小时显示小数,较大时自动切为科学计数(比如 0.001230.00123,但 1234561.2e+05),这往往不是你想要的。

实操建议:

  • 只要想统一显示“xx.xx”格式,无条件加 fmt=".2f"
  • 配合 annot=True 使用,缺一不可;只设 annot=True 会走默认格式
  • 如果数据本身是整数(如混淆矩阵计数),".2f" 会变成 "5.00" —— 这是正常行为,若不想补零,改用 ".0f" 或自定义函数

fmt=".2f" 不够用:传入自定义字符串数组

比如你希望正数标 “+0.23”,负数标 “−0.45”,或某些格子留空、加单位(如 “0.78s”),fmt 就力不从心了。这时可以把 annot 设为一个和数据同形状的字符串数组。

常见场景:

Cardify卡片工坊
Cardify卡片工坊

使用Markdown一键生成精美的小红书知识卡片

下载
  • 相关系数矩阵中,只对绝对值 > 0.3 的格子标注:annot=np.where(np.abs(corr) > 0.3, corr.round(2).astype(str), "")
  • 需要加百分号又控制小数位:先用 np.vectorize(lambda x: f"{x:.1%}") 生成字符串数组,再传给 annot
  • 注意:此时 fmt 参数会被忽略,不再起作用

为什么有时写了 fmt=".2f" 还显示很多位小数?

这不是 fmt 失效,而是你可能踩了这几个坑:

  • dataobject 类型的 DataFrame(比如混了字符串或 NaN)→ Seaborn 无法解析数值,退化为调用 str() 显示原始内容。解决:先 data = data.astype(float) 或用 pd.to_numeric(..., errors="coerce")
  • 用了 annot=custom_list 却还写了 fmt → 如上所述,fmt 被静默忽略,字符串内容完全由你传入的数组决定
  • 数值本身是 np.float64 但含极小误差(如 0.1 + 0.2 = 0.30000000000000004),".2f" 仍会显示 "0.30",视觉上没问题;但若要彻底干净,预处理时用 np.round(data, 2)

进阶提醒:别忽略 annot_kws 的字体适配

两位小数让数字变长,尤其在密集小矩阵里容易重叠或被截断。光调 fmt 不够,还得同步微调文字:

  • 缩小字号:annot_kws={"size": 8}
  • 加粗提升可读性:annot_kws={"weight": "bold"}
  • 避免颜色遮挡:如果背景色太浅(如 cmap="Blues" 最浅处接近白),深色字会看不清 → 改用 annot_kws={"color": "black"} 或反色逻辑
  • 这些设置不改变数字精度,但直接影响“能不能看清两位小数”这个最终效果
真正卡住人的,往往不是不知道 fmt=".2f",而是数据类型没清理干净、或误以为 fmt 对自定义 annot 也生效。把这两点盯牢,两位小数就稳了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

338

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

225

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

138

2026.02.12

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

595

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

108

2025.10.23

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

761

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

221

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1570

2023.10.24

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚学堂ios初级视频教程
尚学堂ios初级视频教程

共77课时 | 18.4万人学习

第三期培训_PHP开发
第三期培训_PHP开发

共116课时 | 27.8万人学习

PHP零基础通关宝典
PHP零基础通关宝典

共78课时 | 10.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号