Python 如何使用Seaborn为热力图的单元格注释添加文本

Python 如何使用Seaborn为热力图的单元格注释添加文本

热力图在识别数据中的模式和趋势方面非常有用,并且可以通过在单元格中添加注释(如文本标签或数值)来进一步自定义,为数据提供额外的信息。在本文中,我们将讨论如何使用Seaborn在Python中为热力图的单元格注释添加文本。我们将探索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 用于将二维数据集转换为ndarray。如果提供了使用pandas的DataFrame对象,则列数据可用于指定行和列。
2. vamx和vmin 提供用作颜色映射的起始值。如果未提供这些值,将从数据和其他关键字参数推断出这些值。
3. cmap 定义将数据值映射到颜色空间的方式。如果未指定默认值,将取决于是否设置了center参数。
4. center 在绘制不同数据集时,此值为颜色映射的中心值。如果未提供其他参数,则此参数将更改默认的cmap值。
5. annot 如果annot参数的值为true,则将数据写入每个热力图单元格。
6. annot_kws 仅当annot参数的值为true时,定义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为热力图的单元格注释添加文本

结论

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程