一文弄懂 Seaborn 绘制热力图
一文弄懂 Seaborn 绘制热力图
热力图是一种用于数据可视化的强大工具,能够直观地展示数值数据在二维表格中的分布情况。本文将详细讲解如何使用 Seaborn 绘制热力图,并配以代码示例和图解,帮助你快速掌握热力图的使用。
一、什么是热力图?
热力图是一种通过颜色变化来表示数值大小的二维图表,常用于相关性分析、矩阵数据展示等场景。例如:
- 展示特征之间的相关性。
- 可视化某些值的分布。
二、安装 Seaborn
如果尚未安装 Seaborn,可以使用以下命令进行安装:
pip install seaborn
三、绘制热力图的基本步骤
3.1 导入必要库
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
3.2 准备数据
示例数据:随机生成矩阵
# 生成随机数据
data = np.random.rand(10, 10) # 10x10 矩阵
columns = [f"Feature {i+1}" for i in range(10)]
index = [f"Sample {i+1}" for i in range(10)]
# 转换为 Pandas DataFrame
df = pd.DataFrame(data, columns=columns, index=index)
print(df.head())
3.3 使用 Seaborn 绘制基本热力图
绘制基本热力图
plt.figure(figsize=(10, 8))
sns.heatmap(df, cmap="viridis")
plt.title("Basic Heatmap")
plt.show()
代码说明
sns.heatmap
:绘制热力图。cmap
:颜色映射表,可以选择viridis
、coolwarm
、Blues
等。
四、热力图的高级功能
4.1 显示数据值
通过 annot=True
参数,可以在每个格子中显示数据值:
plt.figure(figsize=(10, 8))
sns.heatmap(df, cmap="coolwarm", annot=True, fmt=".2f")
plt.title("Heatmap with Values")
plt.show()
代码说明
annot=True
:显示每个单元格的值。fmt=".2f"
:数值格式化为两位小数。
4.2 添加颜色条
通过 cbar=True
参数,可以添加颜色条:
plt.figure(figsize=(10, 8))
sns.heatmap(df, cmap="YlGnBu", cbar=True)
plt.title("Heatmap with Color Bar")
plt.show()
4.3 调整坐标轴标签
使用 xticklabels
和 yticklabels
调整或旋转坐标轴标签:
plt.figure(figsize=(10, 8))
sns.heatmap(df, cmap="coolwarm", xticklabels=2, yticklabels=2)
plt.title("Heatmap with Adjusted Labels")
plt.show()
代码说明
xticklabels
和yticklabels
:设置标签间隔。例如,2
表示每隔两列/行显示一次标签。
4.4 屏蔽上三角或下三角
在某些场景中(如相关性矩阵),只需显示矩阵的一部分:
# 生成对称矩阵(示例:相关性矩阵)
correlation_matrix = np.corrcoef(data)
mask = np.triu(np.ones_like(correlation_matrix, dtype=bool)) # 上三角为 True
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, mask=mask, cmap="coolwarm", annot=True, fmt=".2f")
plt.title("Heatmap with Masked Upper Triangle")
plt.show()
五、热力图实战案例
5.1 相关性分析
# 示例数据
tips = sns.load_dataset("tips")
# 计算相关性矩阵
corr = tips.corr()
# 绘制相关性热力图
plt.figure(figsize=(10, 8))
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f", linewidths=0.5)
plt.title("Correlation Heatmap")
plt.show()
示例解释
- 数据集
tips
包含小费数据。 corr()
用于计算特征间的相关性矩阵。- 热力图显示特征之间的线性相关性。
六、常用参数汇总
参数 | 作用 | 示例值 |
---|---|---|
cmap | 颜色映射表 | "viridis" ,"coolwarm" |
annot | 是否显示数据值 | True 或 False |
fmt | 数值格式化 | ".2f" |
linewidths | 设置格子间距 | 0.5 |
mask | 遮罩矩阵,用于屏蔽部分区域 | np.triu(np.ones_like(...)) |
七、总结
Seaborn 的热力图功能强大,适用于多种场景的数据可视化。本文从基础到高级、再到实战案例,详细讲解了热力图的各种功能。掌握这些技巧后,你可以轻松使用热力图直观地展示数据分布与关系。
学习要点:
- 基础用法:快速绘制热力图,理解其结构。
- 参数调节:通过调整
annot
、cmap
等参数优化热力图。 - 实战案例:应用于相关性分析等实际任务。
快动手试试,用 Seaborn 绘制属于你的精美热力图吧!
评论已关闭