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

如何让seaborn.heatmap()仅显示整数标注?

解决Seaborn Heatmap标注仅显示整数的问题

问题原因

当你的数据是浮点数类型时,即便使用fmt='d'也不会生效——因为fmt='d'仅对整数类型的数据生效,浮点数会被忽略或引发格式错误;而fmt='g'会根据数值自动选择整数或浮点数格式,导致标注混杂。

两种简便解决方案

方案1:先将数据转换为整数类型

直接把绘图数据转成整数后再传入heatmap,配合fmt='d'就能强制显示整数:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# 示例数据(浮点数类型)
data = np.array([[1.0, 2.5], [3.3, 4.0]])
# 转成整数(可选择四舍五入或直接截断)
data_int = np.round(data).astype(int)  # 四舍五入
# data_int = data.astype(int)  # 直接截断小数部分

# 绘制热图
sns.heatmap(data_int, annot=True, fmt='d')
plt.show()

方案2:自定义标注内容

如果不想修改原始数据类型,可以手动生成整数格式的标注文本,传给annot参数:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

data = np.array([[1.0, 2.5], [3.3, 4.0]])
# 生成整数标注(四舍五入)
annotations = np.round(data).astype(int).astype(str)
# 或者直接截断:annotations = data.astype(int).astype(str)

sns.heatmap(data, annot=annotations, fmt='')  # fmt=''表示直接使用传入的文本
plt.show()

注意事项

  • 如果需要精准控制取整逻辑(比如四舍五入、向上取整、向下取整),可以替换np.round为np.ceil(向上取整)或np.floor(向下取整)。
  • 若数据中存在缺失值,处理时要注意跳过或填充,避免格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:10:48