如何在 Python 中使用 seaborn 在热力图单元格注释中添加文本?


热力图可用于识别数据中的模式和趋势,并且可以通过向单元格添加注释(例如文本标签或数值)来进一步自定义,这些注释可以提供有关数据的更多信息。在本文中,我们将讨论如何在 Python 中使用 Seaborn 在热力图单元格注释中添加文本。我们将探讨 Seaborn 中可用于自定义文本注释的不同方法和选项,例如更改文本的字体大小、颜色和格式。

热力图

热力图是一种数据可视化,其中现象的强度在二维图形上用不同的颜色表示。颜色可以变化色调或饱和度,以向读者展示现象在时间和地点上的聚类或变化位置。热力图主要分为两类:聚类热力图和空间热力图。

聚类热力图在固定大小的单元格矩阵中组织幅度,其中现象和类别显示为行和列。聚类的目的是通过统计研究来暗示或显示,因此行和列的排序是经过深思熟虑的,并且有些随机性。单元格的尺寸完全是随机的,但足够大以保证易读性。空间热力图中没有单元格的概念,并且现象被视为持续变化的,因此幅度的位置由其在该空间中的位置决定。

Seaborn

Seaborn 是一个 Python 包,用于根据数据创建图表和图形。它使用 matplotlib 作为其基础,并且与 pandas 库配合使用良好。

Seaborn 有助于数据发现、可视化和理解。通过使用绘图方法处理和可视化包含完整数据集的数据帧和数组,这些方法随后执行必要的语义映射和统计聚合,以生成有见地的图形。借助其声明性的、以数据集为中心的 API,您可以专注于图形组件的含义,而不是渲染它们的细节。

使用 seaborn 创建热力图的语法

sns.heatmap(dt, *, vmin=None, vmax=None, cmap=None, center=None, annot_kws=None, linewidths=0, linecolor=’white’, cbar=True, **kwargs)

解释

序号

属性

定义

1.

dt

它用于将 2D 数据集转换为 ndarray。如果提供了使用 pandas 的 DataFrame,则列数据可用于指定行和列。

2.

vamx 和 vmin

它们提供要作为颜色图起点使用的值。如果未给出,则这些值将从数据和其他关键字参数推断得出。

3.

cmap

它定义了数据值映射到颜色空间的方式。如果您不提供默认值,它将取决于中心是否设置。

4.

center

在绘制不同数据集时,这是要将颜色图居中的值。如果没有给出其他参数,则此参数将更改默认的 cmap。

5.

annot

如果 annot 参数的值为真,则在每个热力图单元格中写入数据。

6.

annot_kws

仅当 annot 参数的值为真时,它才定义函数 matplotlib.axes.Axes.text() 的参数。

7.

linewidhts

此参数定义将划分每个单元格的特定线的宽度。

8.

linecolor

此参数定义将划分每个单元格的特定线的颜色。

9.

cbar

它定义了我们是否需要绘制颜色条。

在热力图单元格注释中添加文本

可以对热力图的行和列进行注释以提供额外的上下文。annot 选项通常设置为 True 以在热力图顶部显示数据值。

Annot 和 fmt 参数

  • Annot − sns.heatmap() 的 annot(注释)功能允许您显示与 Python seaborn 热力图中每个单元格关联的数值。我们可以显示所选单元格的原始数字,或者根据您的指示传递不同的数字。将 True 传递给 annot 会导致该值显示在每个热力图单元格中。

  • Fmt − annot 参数仅允许向 Python 热力图单元格添加数值,而 fmt 参数允许添加字符串(文本)值。

这里,创建了一个包含字符串值的 2D numpy 数组并将其传递给 annot。此外,将字符串值“s”传递给 fmt。

示例

import numpy as n
import matplotlib.pyplot as p
import seaborn as s

# creating random data using numpy
df = n.array([[11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]])

# creating text array using numpy
tx = n.array([['Amy', 'Bryn', 'Calis', 'Daisy', 'Eagel'], ['Fin', 'Garry', 'Hary', 'Ingleis', 'Jack'],
   ['Kim', 'Lasy', 'Mia', 'Nia', 'Olivia']])

# creating subplot
figure, axx = p.subplots()
 
# defining heatmap on current axes using seaborn 
axx = s.heatmap(df, annot=tx, fmt="")

输出

结论

在本文中,我们了解到热力图在二维图形中向我们展示了现象的幅度,并且可以用于数据可视化。我们已经了解了如何使用 Python 的库 Seaborn 来定义热力图、其语法以及定义热力图的参数。最后,我们已经了解了如何声明属性 annot 和 fmt,通过它们我们可以在热力图单元格注释中添加文本。

更新于: 2023-05-31

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告