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

我正在用 Python 构建一个 seaborn 热图。这些值将显示在热图 ( annot=True) 中。我将矩阵(一个 pandas DataFrame)上的所有值四舍五入到将在热图上表示的小数点后一位使用np.around(matrix,1). 矩阵上的一些值是 0,那么 numpy 简单地将 then 舍入而不是 就不足为奇00.00.0问题是我需要在 seaborn 热图上显示零。有什么建议么?

编辑:我尝试将矩阵设置为 np 数组并进行设置np.set_printoptions(1,floatmode='fixed'),但是当我这样做时,我丢失了列标签,然后我需要构建热图,所以这不是一个选项。

编辑 2:我尝试更改annot=Trueannot=np.around(np.array(matrix),1).astype(str),也就是说,不是在热图上显示 pd DataFrame,而是将要显示的矩阵转换为 np 数组,四舍五入并“固定”为字符串,但后来我得到了,这ValueError: Unknown format code 'g' for object of type 'str'似乎成为一个错误。



米脂
浏览 197回答 1
1回答

蝴蝶刀刀

无需事先对数据进行舍入,您需要做的就是更改注释格式。对于 1 dp,您执行以下操作,sns.heatmap(df, annot=True,fmt='.1f')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python