如何在 Python 中使用 seaborn 在热图单元格注释中添加文本?
原文:https://www . geesforgeks . org/how-add-text-in-a-heat map-cell-annotations-use-seaborn-in-python/
先决条件: 海鸟热图
热图 被定义为使用颜色来可视化矩阵值的数据的图形表示。在这种情况下,为了表示更常见的值或更高的活动,使用更亮的颜色,基本上是红色,为了表示不太常见的值或活动值,更暗的颜色是优选的。热图也由阴影矩阵的名称定义。可以使用 seaborn.heatmap()函数绘制 Seaborn 中的热图。
语法: seaborn.heatmap(data, vmin =无,vmax =无,cmap =无,center =无,annot _ kws =无,线宽=0,linecolor='white ',cbar=True,kwargs)*
重要参数:
- 数据: 2D 数据集,可以强制到数组中。
- 【vmin】VMAX:值锚定颜色映射,否则它们是从数据和其他关键字参数中推断出来的。
- cmap: 从数据值到颜色空间的映射。
- 中心:绘制发散数据时颜色图的中心值。
- 注释:如果为真,则在每个单元格中写入数据值。
- fmt: 添加注释时使用的字符串格式代码。
- 线宽:将划分每个单元格的线条宽度。
- 线条颜色:将分割每个细胞的线条的颜色。
- cbar: 是否绘制彩条。
除数据外的所有参数都是可选的。
返回:matplotlib . axes . _ 子场景类型的对象。axesssubplotT7】
热图注释是显示热图中行和列的附加信息的好方法。一般来说,为了在热图上显示数据值,我们将注释参数设置为真,但是如果您想在单元格注释中添加文本,可以通过以下方式完成–
方法 1:
- 导入模块
- 创建数据或加载数据集
- 创建另一个类似数组的数据,其中包含要在热图上显示的文本值(形状与数据相同)
- 将类似数组的数据作为热图的注释参数的值。
- 如果要添加非数值,热图的 fmt 参数是必需的。此参数用于添加字符串格式代码,以便在添加注释时使用。
- 绘制热图
- 显示图
示例:
Python 3
# importing libraries
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# creating random data
data = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
# creating array of text
text = np.array([['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I', 'J'],
['K', 'L', 'M', 'N', 'O']])
# creating subplot
fig, ax = plt.subplots()
# drawing heatmap on current axes
ax = sns.heatmap(data, annot=text, fmt="")
输出:
如果您想显示文本和数据值,您必须通过连接这两个值来创建一个自定义注释。
方法 2:
- 导入模块
- 创建或加载数据
- 声明数据数组
- 使用 NP . flat()将数据数组和文本数组重塑为 1D。
- 然后将它们压缩在一起,对文本和值进行迭代。
- 使用格式化字符串创建自定义的新值。
- 返回包含自定义值的相同大小的重塑数组。
- 创建热图
- 显示图
示例:
Python 3
# importing libraries
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# creating random data
data = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
text = np.array([['A', 'B', 'C', 'D', 'E'],
['F', 'G', 'H', 'I', 'J'], ['K', 'L', 'M', 'N', 'O']])
# combining text with values
formatted_text = (np.asarray(["{0}\n{1:.2f}".format(
text, data) for text, data in zip(text.flatten(), data.flatten())])).reshape(3, 5)
# drawing heatmap
fig, ax = plt.subplots()
ax = sns.heatmap(data, annot=formatted_text, fmt="", cmap="cool")
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处