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 设为一个和数据同形状的字符串数组。

Dora
Dora

创建令人惊叹的3D动画网站,无需编写一行代码。

下载

常见场景:

  • 相关系数矩阵中,只对绝对值 > 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

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

豆包大模型
豆包大模型

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

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

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

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

337

2023.10.31

php数据类型
php数据类型

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

224

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的区别,阅读专题下面的文章了解更多详细内容。

106

2025.10.23

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

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

760

2023.08.03

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

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

221

2023.09.04

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

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

1566

2023.10.24

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 1万人学习

php初学者入门课程
php初学者入门课程

共10课时 | 0.7万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2.2万人学习

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

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