我正在用 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')
添加回答
举报
0/150
提交
取消