为了账号安全,请及时绑定邮箱和手机立即绑定

Seaborn 的热图在 annot=True 时显示 0,而不是 0.0。我该如何改变这个?

Seaborn 的热图在 annot=True 时显示 0,而不是 0.0。我该如何改变这个?

米脂 2023-05-09 16:06:07
我正在用 Python 构建一个 seaborn 热图。这些值将显示在热图 ( annot=True) 中。我将矩阵(一个 pandas DataFrame)上的所有值四舍五入到将在热图上表示的小数点后一位使用np.around(matrix,1). 矩阵上的一些值是 0,那么 numpy 简单地将 then 舍入而不是 就不足为奇0了0.0。0.0问题是我需要在 seaborn 热图上显示零。有什么建议么?编辑:我尝试将矩阵设置为 np 数组并进行设置np.set_printoptions(1,floatmode='fixed'),但是当我这样做时,我丢失了列标签,然后我需要构建热图,所以这不是一个选项。编辑 2:我尝试更改annot=True为annot=np.around(np.array(matrix),1).astype(str),也就是说,不是在热图上显示 pd DataFrame,而是将要显示的矩阵转换为 np 数组,四舍五入并“固定”为字符串,但后来我得到了,这ValueError: Unknown format code 'g' for object of type 'str'似乎成为一个错误。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

无需事先对数据进行舍入,您需要做的就是更改注释格式。对于 1 dp,您执行以下操作,

sns.heatmap(df, annot=True,fmt='.1f')


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信