如何使用"seaborn.heatmap“函数绘制这样的热图?色差由矩阵A决定,每个网格的注释由矩阵B决定。例如,如果我得到一个矩阵,我希望它的颜色按照这个矩阵的z分数来显示,但是注释仍然是矩阵本身。我知道我应该求助于参数'annot_kws',但是我应该如何编写代码呢?
发布于 2022-02-16 14:45:53
不只是设置annot=True
,可以将annot=
设置为与数据相同数量的数据(或2D numpy数组或列表列表)。这样,着色将使用data
应用,注释将来自annot
。西博恩仍然将注意使用白色文本的黑暗细胞和黑色文本的光。
annot_kws=
用于更改文本属性 (通常为fontsize )。但是,如果使用了多行文本,也可以更改字体本身或对齐方式。
下面是一个使用数字1到36作为注释的示例,但是数字模10用于着色。annot_kws
用于文本的放大和旋转。(注意,当注释是字符串时,还需要设置格式,例如fmt=''
)。
import seaborn as sns
import numpy as np
a = pd.DataFrame({'count': [1, 2, 3]})
matrix_B = np.arange(1, 37).reshape(6, 6) # used for annotations
matrix_A = (matrix_B % 10) # used for coloring
sns.heatmap(data=matrix_A, annot=matrix_B,
annot_kws={'size': 20, 'rotation': 45},
square=True, cbar_kws={'label': 'last digit'})
https://stackoverflow.com/questions/71142600
复制相似问题