我使用海运版本10.1生成了一个热图。我想用fmt='.2g'格式化每个单元格的注释。
然而,这似乎只影响对角线上的细胞。
import seaborn as sn
x = np.array([[0.99082, 0.00102, 0.0, 0.0],
[0.0, 0.98767, 0.00529, 0.00088],
[0.01744, 0.00097, 0.94961, 0.00291],
[0.00990, 0.00099, 0.00594, 0.94356]])
sn.heatmap(x, annot=True, fmt='.2g', cmap=plt.cm.Blues)我得到的是:

我已经浏览过Seaborn文档,但找不到任何将格式应用于非对角线单元格注释的设置。有人知道怎么做吗?
编辑:例如,我希望0.017被格式化为0.02,0.0099被格式化为0.01,但是0.00应该是0。
发布于 2020-08-08 23:58:02
fmt='0.2f'符号的str.format()来设置所有注释的格式( )'0.00'的值更改为'0',请使用matplotlib.text API。import seaborn as sns
x = np.array([[0.99082, 0.00102, 0.0, 0.0],
[0.0, 0.98767, 0.00529, 0.00088],
[0.01744, 0.00097, 0.94961, 0.00291],
[0.00990, 0.00099, 0.00594, 0.94356]])
sns.heatmap(x, annot=True, fmt='0.2f', cmap=plt.cm.Blues)
# update the desired text annotations
for text in ax.texts:
if text.get_text() == '0.00':
text.set_text('0')

参考资料:
https://stackoverflow.com/questions/63321084
复制相似问题