Python Seaborn';当annot=True时,s热图显示0,而不是0.0。我如何改变这个?
我正在用Python构建一个海生热图。数值将显示在热图图中(Python Seaborn';当annot=True时,s热图显示0,而不是0.0。我如何改变这个?,python,numpy,seaborn,rounding,heatmap,Python,Numpy,Seaborn,Rounding,Heatmap,我正在用Python构建一个海生热图。数值将显示在热图图中(annot=True)。我使用np.around(matrix,1)将热图上表示的矩阵(数据框)上的所有值四舍五入到小数点后1位。矩阵上的一些值是0,那么它就不是一个意外的numpy简单地将其舍入到0,而不是0.0。问题是我需要零在seaborn热图上显示为0.0。有什么建议吗 编辑:我尝试将矩阵设置为np数组并设置np.set_printoptions(1,floatmode='fixed'),但当我这样做时,我丢失了列标签,然后我需
annot=True
)。我使用np.around(matrix,1)
将热图上表示的矩阵(数据框)上的所有值四舍五入到小数点后1位。矩阵上的一些值是0,那么它就不是一个意外的numpy简单地将其舍入到0
,而不是0.0
。问题是我需要零在seaborn热图上显示为0.0
。有什么建议吗
编辑:我尝试将矩阵设置为np数组并设置np.set_printoptions(1,floatmode='fixed')
,但当我这样做时,我丢失了列标签,然后我需要构建热图,因此这不是一个选项
编辑2:我尝试将
annot=True
更改为annot=np.around(np.array(matrix),1.astype(str)
,也就是说,不是在热图上显示pd数据框,而是将要显示的矩阵转换为np数组,四舍五入并“固定”为字符串,但是我得到了ValueError:类型为'str'的对象的未知格式代码'g',
,这似乎是一个错误。无需在手之前对数据进行舍入,只需更改注释格式即可。对于1D.p,您可以按照以下步骤操作:
sns.heatmap(df, annot=True,fmt='.1f')