网易首页 > 网易号 > 正文 申请入驻

使用Python seaborn库绘制热力图

0
分享至

热力图(Heatmap)是一种二维数据可视化工具,通过颜色的深浅来表示数据大小的差异,非常适合用来展示矩阵数据的分布、相关性或其他指标。

实际案例数据

我们以一个学生考试成绩矩阵为例,展示不同学生在不同科目上的得分。以下是数据:


学生姓名 数学 英语 物理 化学 生物 张三 80 85 78 92 88 李四 70 75 82 85 90 王五 88 80 86 80 85 赵六 60 65 70 75 72 陈七 95 90 85 88 92
使用 Seaborn 绘制热力图

以下是基于上述数据绘制热力图的完整代码:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建数据
data = pd.DataFrame({
"学生姓名":["张三","李四","王五","赵六","陈七"],
"数学":[80,70,88,60,95],
"英语":[85,75,80,65,90],
"物理":[78,82,86,70,85],
"化学":[92,85,80,75,88],
"生物":[88,90,85,72,92]
})

# 将学生姓名设置为索引
data.set_index("学生姓名", inplace=True)

# 绘制热力图
plt.figure(figsize=(10,6))
sns.heatmap(data, annot=True, fmt="d", cmap="YlGnBu", linewidths=0.5)

# 设置标题
plt.title("学生考试成绩热力图", fontsize=16)

# 显示图表
plt.show()
代码解析1. 创建数据

data = pd.DataFrame({
"学生姓名":["张三","李四","王五","赵六","陈七"],
"数学":[80,70,88,60,95],
"英语":[85,75,80,65,90],
"物理":[78,82,86,70,85],
"化学":[92,85,80,75,88],
"生物":[88,90,85,72,92]
})
  • Pandas 数据框

    • • 我们使用 Pandas 创建一个数据框,表示学生的考试成绩。

    • • 每一行是一个学生,每一列是一个科目,单元格的值是对应学生的科目得分。

data.set_index("学生姓名", inplace=True)
  • 设置索引

    • • 使用set_index()方法,将学生姓名设置为索引,方便在热力图中展示横轴为学生姓名。

2. 绘制热力图

plt.figure(figsize=(10, 6))
sns.heatmap(data, annot=True, fmt="d", cmap="YlGnBu", linewidths=0.5)
  • • **plt.figure(figsize=(10, 6))**:

    • • 设置热力图的图表尺寸,figsize=(10, 6)表示宽度为 10,长度为 6。

  • • **sns.heatmap()**:

    • • 使用 Seaborn 的heatmap函数绘制热力图。

    • data:传入的数据框(矩阵)。

    • annot=True:在每个单元格内显示数值。

    • fmt="d":指定单元格数值的格式为整数(d)。

    • cmap="YlGnBu":设置颜色映射为 "黄色到绿色到蓝色" 渐变。

    • linewidths=0.5:设置单元格之间的间隔线宽度为 0.5。

3. 添加标题

plt.title("学生考试成绩热力图", fontsize=16)
  • • 为热力图添加标题,并设置字体大小。

4. 显示图表

plt.show()
  • • 使用plt.show()显示生成的热力图。

在这里插入图片描述 图表分析

运行代码后,生成的热力图将具有以下特点:

  1. 1.颜色表示值大小

  • • 热力图的颜色从浅黄色(低分)逐渐过渡到深蓝色(高分),反映不同科目的得分大小。

2.单元格注释

  • • 每个单元格内显示具体的得分值,例如 "张三" 在 "数学" 中的得分是 80。

3.对比直观

  • • 从颜色上可以直观地看出哪些学生在哪些科目表现较好(深蓝色),哪些科目表现较差(浅黄色)。

扩展优化1. 标准化数值

可以通过标准化数据,展示学生在不同科目上的相对表现(如百分制)。

data_normalized = data / 100
sns.heatmap(data_normalized, annot=True, fmt=".2f", cmap="coolwarm")
  • data / 100:将原始数据标准化为 [0, 1] 范围。

  • fmt=".2f":格式化数值为小数点后两位。

2. 调整颜色映射

更改颜色映射为其他渐变,如红色到蓝色。

sns.heatmap(data, annot=True, fmt="d", cmap="RdBu", linewidths=0.5)
  • cmap="RdBu":使用红色到蓝色渐变,适合表示正负值的数据。

3. 添加颜色条

显示颜色条,用于解释颜色与数值的对应关系。

sns.heatmap(data, annot=True, fmt="d", cmap="YlGnBu", cbar=True)
  • cbar=True:在热力图旁边添加颜色条。

总结

通过上述案例,我们学习了如何使用 Seaborn 绘制热力图,并用学生考试成绩作为实际案例展示数据分布。

热力图的应用场景

  1. 1.数据分布分析:观察矩阵数据的强弱分布。

  2. 2.相关性矩阵:展示变量之间的相关性(如股票收益的相关性)。

  3. 3.性能指标比较:比较不同个体在不同维度的表现。

Seaborn 的热力图功能强大且易用,通过不同的颜色映射和样式配置,可以满足多种可视化需求。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
伊朗反击变弱,导弹和无人机数量断崖式下降,这是一个危险的信号

伊朗反击变弱,导弹和无人机数量断崖式下降,这是一个危险的信号

麓谷隐士
2026-03-06 07:37:46
A股:今晚2.5亿股民,要兴奋到睡不到觉,你知道为什么吗?

A股:今晚2.5亿股民,要兴奋到睡不到觉,你知道为什么吗?

另子维爱读史
2026-03-06 19:46:16
下饭文化杀死了多少中国胃,一碗米饭的阴谋

下饭文化杀死了多少中国胃,一碗米饭的阴谋

富贵说
2026-03-05 15:56:38
伊拉克库尔德第一夫人宣言:我们不是任人驱使的炮灰!

伊拉克库尔德第一夫人宣言:我们不是任人驱使的炮灰!

胜研集
2026-03-06 13:44:23
虎跳峡落水失踪男子遗体找到 救援人员:打捞工作正在进行

虎跳峡落水失踪男子遗体找到 救援人员:打捞工作正在进行

红星新闻
2026-03-06 18:25:17
长城汽车魏建军承认抄袭路虎海报:责任主要在我,愿承担全部法律和经济责任

长城汽车魏建军承认抄袭路虎海报:责任主要在我,愿承担全部法律和经济责任

新浪财经
2026-03-06 20:19:19
外媒记者称很多国家羡慕中国

外媒记者称很多国家羡慕中国

中国日报网
2026-03-05 21:00:05
金价重现历史了!要有心理准备,下月,金价或将重现2015年历史!

金价重现历史了!要有心理准备,下月,金价或将重现2015年历史!

牛锅巴小钒
2026-03-06 20:23:41
特朗普宣称“与伊朗不会达成任何协议”

特朗普宣称“与伊朗不会达成任何协议”

新华社
2026-03-06 22:14:06
特朗普宣称“与伊朗不会达成任何协议”

特朗普宣称“与伊朗不会达成任何协议”

界面新闻
2026-03-06 22:15:25
我国初中、高中、高等教育三个阶段的学龄人口将分别于2026年、2029年、2032年达峰

我国初中、高中、高等教育三个阶段的学龄人口将分别于2026年、2029年、2032年达峰

大象新闻
2026-03-06 18:47:02
美国伊朗冲突,那些造“官谣”的人已经魔怔了

美国伊朗冲突,那些造“官谣”的人已经魔怔了

清书先生
2026-03-06 17:06:21
事关巴拿马港口!李嘉诚旗下长和再采取行动,拒绝巴拿马政府没收港口公司文件和材料

事关巴拿马港口!李嘉诚旗下长和再采取行动,拒绝巴拿马政府没收港口公司文件和材料

每日经济新闻
2026-03-06 17:32:16
再读《穆斯林的葬礼》,对茅盾文学奖的信任崩塌了!

再读《穆斯林的葬礼》,对茅盾文学奖的信任崩塌了!

难得君
2026-03-06 13:43:16
北斗覆盖120国,美伊争信号,中国悄悄改规则

北斗覆盖120国,美伊争信号,中国悄悄改规则

网络易不易
2026-03-06 07:50:14
中国造红旗导弹被击毁!

中国造红旗导弹被击毁!

烽火观天下
2026-03-06 20:23:13
特殊时点,金正恩再上“最大的船”

特殊时点,金正恩再上“最大的船”

中国新闻周刊
2026-03-06 18:14:11
伊朗越打越猛,特朗普骑虎难下!美国实际上已经输了

伊朗越打越猛,特朗普骑虎难下!美国实际上已经输了

哲叔视野
2026-03-06 09:26:23
政府报告三提“休假”背后:一年117天假 为什么中国人还休不够

政府报告三提“休假”背后:一年117天假 为什么中国人还休不够

冷观互联网
2026-03-06 11:48:12
国家发展改革委主任:“十五五”时期普通高中将增加学位200万个以上

国家发展改革委主任:“十五五”时期普通高中将增加学位200万个以上

界面新闻
2026-03-06 17:27:07
2026-03-06 23:11:00
奋斗在IT
奋斗在IT
聚焦IT风云,谱写奋斗历程
1557文章数 21612关注度
往期回顾 全部

科技要闻

独家|除夕加班、毫无黑料!林俊旸无奈离场

头条要闻

媒体:成本2万美元 伊朗的"穷人巡航导弹"把美国打心疼

头条要闻

媒体:成本2万美元 伊朗的"穷人巡航导弹"把美国打心疼

体育要闻

跑了24年,他终于成为英超“最长的河”

娱乐要闻

周杰伦社交媒体晒昆凌,夫妻感情稳定

财经要闻

关于经济、股市等,五部门都说了啥?

汽车要闻

逃离ICU,上汽通用“止血”企稳

态度原创

数码
房产
健康
教育
军事航空

数码要闻

华为WATCH GT 6系列手表推送HarmonyOS 6花粉Beta版升级

房产要闻

传统学区房熄火?2月海口二手房爆火的板块竟然是…

转头就晕的耳石症,能开车上班吗?

教育要闻

把家变成“有温度的课堂”——常志敏家教好故事

军事要闻

伊朗:使用无人机击中美军"林肯"号航母

无障碍浏览 进入关怀版