如何使用Python中的seaborn在热力图单元格注释中添加文本?
热力图对于识别数据中的模式和趋势非常有用,并且可以通过向单元格添加注释来进一步定制,例如文本标签或数值,这可以提供有关数据的额外信息。在本文中,我们将讨论如何使用python中的seaborn在热力图单元格注释中添加文本。我们将探讨seaborn中可用的不同方法和选项来自定义文本注释,例如更改文本的字体大小、颜色和格式。
热力图
热力图(或热图)是一种数据可视化方法,通过在二维图上使用不同颜色来表示现象的强度。颜色的色调或饱和度可能会变化,以向读者展示现象在时间和空间上的聚集或变化情况。热力图主要分为两类:聚类热力图和空间热力图。
集群热图将现象和类别显示为行和列,通过固定大小的单元矩阵来组织大小。集群的排序是有意为之的,并且有些随机,旨在通过统计研究来建议或显示。单元的尺寸完全随机,但足够大以便可读。空间热图中没有单元的概念,现象被视为不断变化的,因此大小的位置取决于其在该空间中的位置。
Seaborn
的中文翻译为:Seaborn
Seaborn是一个用于从数据中制作图表和图形的Python包。它以matplotlib为基础,并且与pandas库很好地配合使用。
Seaborn帮助进行数据发现、可视化和理解。通过使用绘图方法处理包含完整数据集的数据框和数组,并进行必要的语义映射和统计聚合,以生成有洞察力的图表。借助其声明式、以数据集为中心的API,您可以专注于图表组件的含义,而不是渲染它们的技术细节。
立即学习“Python免费学习笔记(深入)”;
使用seaborn绘制热力图的语法
sns.heatmap(dt, *, vmin=None, vmax=None, cmap=None, center=None, annot_kws=None, linewidths=0, linecolor=’white’, cbar=True, **kwargs)
Explanation
翻译成中文为:解释
序号 | 属性 | 定义 |
---|---|---|
1. | dt | 它用于将2D数据集转换为ndarray。如果提供了使用pandas的DataFrame,则可以使用列数据来指定行和列。 |
2. | vamx和vmin | 它们提供了用作色图起点的值。如果没有提供,这些值将从数据和其他关键字参数中推断出来。 |
3. | cmap | 它定义了数据值如何映射到颜色空间。如果没有指定默认值,将取决于是否设置了中心值。 |
4. | center | 绘制不同数据集时,这是用于设置颜色映射的中心值。如果没有给出其他参数,这个参数将改变默认的颜色映射。 |
5. | annot | 如果annot参数的值为true,则将数据写入每个热图单元格。 |
6. | annot_kws | 只有当annot参数的值为true时,它才定义了函数matplotlib.axes.Axes.text()的参数。 |
7. | linewidhts | 该参数定义了每个单元格之间的分割线的宽度。 |
8. | linecolor | 这个参数定义了每个单元格之间的分割线的颜色。 |
9. | cbar | 它定义了我们是否需要绘制一个色条。 |
在热力图单元格注释中添加文本
热力图的行和列可以进行注释以提供额外的上下文。通常将annot选项设置为True以在热力图的顶部显示数据值。
Annot and fmt parameter
的中文翻译为:Annot和fmt参数
Annot − sns.heatmap() 的 annot(注释)功能允许您在 Python seaborn 热力图中显示与每个单元格关联的数值。我们可以显示所选单元格的原始数字,或根据您的指示显示不同的数字。将 True 传递给 annot 将导致在每个热力图单元格中显示该值。
Fmt − annot参数仅允许将数值添加到Python热力图单元格中,而fmt参数允许添加字符串(文本)值。
在这里,创建了一个包含字符串值的2D numpy数组,并将其传递给annot。另外,字符串值"s"被传递给fmt。
Example
的中文翻译为:示例
import numpy as nimport matplotlib.pyplot as pimport seaborn as s# creating random data using numpydf = n.array([[11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]])# creating text array using numpytx = n.array([['Amy', 'Bryn', 'Calis', 'Daisy', 'Eagel'], ['Fin', 'Garry', 'Hary', 'Ingleis', 'Jack'], ['Kim', 'Lasy', 'Mia', 'Nia', 'Olivia']])# creating subplotfigure, axx = p.subplots() # defining heatmap on current axes using seaborn axx = s.heatmap(df, annot=tx, fmt="")
输出
结论
在本文中,我们了解到热力图可以在二维图表中显示现象的大小,并可用于数据可视化。我们已经看到了如何使用Python的Seaborn库来定义热力图,以及定义热力图的语法和参数。最后,我们还了解了如何使用属性annot和fmt来在热力图的单元格注释中添加文本。