【Seaborn】sns.heatmap() 函数:热力图

sns.heatmap() —— 热力图(Heatmap)

seaborn.heatmap() 用于 可视化矩阵数据,通过 颜色深浅表示数值大小,适用于 相关性分析、数据分布可视化、混淆矩阵展示等


1. 语法

import seaborn as sns

sns.heatmap(data, annot=False, cmap=None, linewidths=0, linecolor="white", vmin=None, vmax=None)

主要参数

参数作用
data矩阵数据(DataFrame / Numpy 数组)
annot是否 显示数值True 显示)
cmap颜色方案(如 "coolwarm""Blues"
linewidths单元格间隔线宽度
linecolor单元格间隔线颜色
vmin/vmax颜色映射的最小/最大值

2. 相关性分析

2.1 计算相关性矩阵

import seaborn as sns
import matplotlib.pyplot as plt

# 加载数据
data = sns.load_dataset("penguins")

# 计算相关性
corr = data.corr(numeric_only=True)

# 绘制热力图
sns.heatmap(corr, annot=True, cmap="coolwarm", linewidths=0.5)

plt.title("Feature Correlation Heatmap")
plt.show()

📌 作用

  • corr = data.corr(numeric_only=True) 计算相关性矩阵
  • annot=True 显示数值cmap="coolwarm" 设置颜色
  • 用于分析特征之间的相关性(-1~1)
    在这里插入图片描述

2.2 只显示上三角(去掉重复值)

import numpy as np

mask = np.triu(np.ones_like(corr, dtype=bool))  # 生成上三角 mask

sns.heatmap(corr, annot=True, cmap="coolwarm", mask=mask)

plt.show()

📌 作用

  • 只显示 上三角(避免重复信息)。
    在这里插入图片描述

3. 适用于数据分布分析

3.1 生成随机数据

import numpy as np

# 生成 10x10 矩阵
data = np.random.rand(10, 10)

sns.heatmap(data, cmap="viridis", annot=True)

plt.show()

📌 作用

  • 适用于 查看数据分布
    在这里插入图片描述

3.2 混淆矩阵可视化

from sklearn.metrics import confusion_matrix

# 生成混淆矩阵
y_true = [0, 1, 1, 2, 2, 2, 0, 1, 2, 0]
y_pred = [0, 0, 1, 2, 2, 1, 0, 2, 2, 0]

cm = confusion_matrix(y_true, y_pred)

sns.heatmap(cm, annot=True, cmap="Blues")

plt.xlabel("Predicted")
plt.ylabel("True")
plt.title("Confusion Matrix")
plt.show()

📌 作用

  • 用于分类模型评估
    在这里插入图片描述

4. 美观调整

4.1 调整颜色范围

sns.heatmap(corr, annot=True, cmap="coolwarm", vmin=-1, vmax=1)

plt.show()

📌 作用

  • vmin=-1, vmax=1 限制颜色范围
    在这里插入图片描述

4.2 添加边框

sns.heatmap(corr, annot=True, cmap="coolwarm", linewidths=1, linecolor="black")

plt.show()

📌 作用

  • linewidths=1 添加单元格边框
    在这里插入图片描述

5. sns.heatmap() vs sns.clustermap()

sns.heatmap()sns.clustermap()
作用静态热力图层次聚类热力图
适用于相关性分析、数据分布聚类分析
sns.clustermap(corr, annot=True, cmap="coolwarm")
plt.show()

在这里插入图片描述


6. 总结

sns.heatmap() 适用于数据分布可视化,尤其是相关性分析、混淆矩阵
常见参数

  • annot=True 显示数值cmap="coolwarm" 设置颜色linewidths=1 添加边框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值