一文弄懂 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:颜色映射表,可以选择 viridiscoolwarmBlues 等。

四、热力图的高级功能

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 调整坐标轴标签

使用 xticklabelsyticklabels 调整或旋转坐标轴标签:

plt.figure(figsize=(10, 8))
sns.heatmap(df, cmap="coolwarm", xticklabels=2, yticklabels=2)
plt.title("Heatmap with Adjusted Labels")
plt.show()

代码说明

  • xticklabelsyticklabels:设置标签间隔。例如,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是否显示数据值TrueFalse
fmt数值格式化".2f"
linewidths设置格子间距0.5
mask遮罩矩阵,用于屏蔽部分区域np.triu(np.ones_like(...))

七、总结

Seaborn 的热力图功能强大,适用于多种场景的数据可视化。本文从基础到高级、再到实战案例,详细讲解了热力图的各种功能。掌握这些技巧后,你可以轻松使用热力图直观地展示数据分布与关系。

学习要点:

  1. 基础用法:快速绘制热力图,理解其结构。
  2. 参数调节:通过调整 annotcmap 等参数优化热力图。
  3. 实战案例:应用于相关性分析等实际任务。

快动手试试,用 Seaborn 绘制属于你的精美热力图吧!

最后修改于:2024年11月29日 22:09

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日