如何将seaborn热力图注释的浮点数格式化为仅显示小数部分
实现seaborn heatmap仅显示小数部分的标注
要在seaborn热力图中只显示浮点数的小数部分(如.25而非0.25),可以通过自定义格式化函数替代默认的格式字符串,具体实现如下:
方法1:自定义格式化函数
先定义一个处理数值的函数,格式化后去除整数位的0:
def format_only_decimal(x): # 保留两位小数并替换开头的"0.",得到".xx"格式 return f"{x:.2f}".replace("0.", ".")
然后在heatmap中指定fmt参数为这个函数:
import seaborn as sns import numpy as np # 示例数据(整数部分统一,仅关注小数) table = np.array([[0.25, 0.71], [0.43, 0.98]]) sns.heatmap(table, annot=True, fmt=format_only_decimal)
方法2:简化的lambda表达式
如果不想单独定义函数,可直接用lambda表达式嵌入参数,写法更简洁:
sns.heatmap(table, annot=True, fmt=lambda x: f"{x:.2f}".replace("0.", "."))
注意事项
- 该方法适用于整数部分统一且无需展示的场景,无论整数部分是0还是其他固定值,都会仅保留小数部分的
.xx格式。 - 如果数值的小数部分不足两位,会自动补零(如
0.3会显示为.30),符合.2f的格式化规则。
内容的提问来源于stack exchange,提问作者ranemak
相关产品推荐
相关产品推荐

