如何使用函数"sns.heatmap"的参数"annot_kws"修改注释文字?
How to use the parameter "annot_kws" of the function "sns.heatmap" to revise the annotaion text?
如何使用“seaborn.heatmap”函数绘制这样的热图?
颜色深浅由矩阵 A 确定,每个网格的注释由矩阵 B 确定。
例如,如果我得到一个矩阵,我希望它的颜色根据这个矩阵的 z-score 显示,但注释仍然是矩阵本身。
我知道我应该求助于参数 'annot_kws',但我应该如何编写代码?
不是简单地设置annot=True
,而是可以将annot=
设置为与数据具有相同行数和列数的数据帧(或二维numpy数组,或列表列表)。这样,将使用 data
应用着色,并且注释将来自 annot
。 Seaborn 仍会注意为深色单元格使用白色文本,为浅色单元格使用黑色文本。
annot_kws=
用于改变text properties,通常是字体大小。但您也可以更改字体本身,或者如果您使用的是多行文本,则可以更改对齐方式。
这里是一个使用数字 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'})
如何使用“seaborn.heatmap”函数绘制这样的热图? 颜色深浅由矩阵 A 确定,每个网格的注释由矩阵 B 确定。 例如,如果我得到一个矩阵,我希望它的颜色根据这个矩阵的 z-score 显示,但注释仍然是矩阵本身。 我知道我应该求助于参数 'annot_kws',但我应该如何编写代码?
不是简单地设置annot=True
,而是可以将annot=
设置为与数据具有相同行数和列数的数据帧(或二维numpy数组,或列表列表)。这样,将使用 data
应用着色,并且注释将来自 annot
。 Seaborn 仍会注意为深色单元格使用白色文本,为浅色单元格使用黑色文本。
annot_kws=
用于改变text properties,通常是字体大小。但您也可以更改字体本身,或者如果您使用的是多行文本,则可以更改对齐方式。
这里是一个使用数字 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'})