搞定相关性分析:用对这5种热图就行了
在生信分析、临床统计或分子实验数据处理中,相关性分析几乎无处不在。无论你是在研究基因表达与免疫细胞浸润的关系,还是探索代谢物与临床指标之间的联系,一张高质量的相关性热图,往往能让你的科研成果“一图胜千言”。
但问题是——
相关性热图到底该怎么选?
各种配色、聚类、显著性标记怎么看?
不同软件绘出来的热图为什么差这么多?
别慌!今天我们就来一次**“热图进阶全攻略”,手把手带你了解生信分析中最常用、最实用的五类相关性热图类型**,并告诉你——每种热图该用在什么场景、怎么做才高级。

一、基础款:皮尔森/斯皮尔曼相关系数矩阵热图
这是最常见的相关性热图类型,几乎是所有科研文章的入门级标配。
🧩 适用场景
- 探索多个变量(如基因、代谢物、免疫细胞)之间的整体关系
- 展示样本之间的表达相似度
- 初步筛选高相关指标
💡 技术要点
- 常用函数
- R语言:cor()(可选Pearson/Spearman),配合corrplot或pheatmap绘图
- Python:pandas.DataFrame.corr() + seaborn.heatmap()
- 关键参数设置
- method = “pearson”:线性关系
- method = “spearman”:非参数、稳健性强
- cluster_rows = TRUE:层次聚类展示相似模式
- display_numbers = TRUE:在格子中显示r值
- 色彩选择
- 常用调色板:RdBu, PuOr, coolwarm
- 建议中性颜色代表r=0,正相关用暖色,负相关用冷色
🎨 示意风格
一张红蓝渐变、带聚类树的方形矩阵图,左上角与右下角对称。
✅ 优点
直观、通用、可扩展。
⚠️ 缺点
难以体现显著性水平和复杂层次信息。
二、增强款:带显著性标记的相关热图
有时,仅仅展示r值还不够。你需要告诉读者,这些相关性到底有没有统计学意义。
🧩 适用场景
- 论文发表时展示统计严谨性
- 对比显著 vs 不显著的关系
💡 技术要点
- 添加显著性标志
- R语言可用corrplot的p.mat参数(结合Hmisc::rcorr()生成p值矩阵)
- 设置insig = “blank”或pch = “*”, p.mat < 0.05显示星号
- 绘图技巧
- 用空白或灰色隐藏不显著格子
- 使用不同星号表示显著性:* <0.05, ** <0.01, *** <0.001
- 代码示例
- corrplot(cor_matrix, method=”color”, type=”upper”,
- mat=p_matrix, sig.level=0.05, insig=”blank”)
🎨 示意风格
格子中有星号标记显著性,颜色反映r值,非显著区域留白。
✅ 优点
兼具美观与严谨,最常用于发表级图表。
⚠️ 缺点
当变量很多时,星号会堆叠显得杂乱。
三、聚类款:层次聚类 + 热图组合
单纯的r值并不能揭示复杂关系,而聚类分析可以帮助我们从整体上理解数据模式。
🧩 适用场景
- 基因表达、代谢组、微生物群落等多变量数据
- 想展示“哪几组变量聚在一起”
💡 技术要点
- 常用函数
- R语言:pheatmap() 或 ComplexHeatmap
- Python:seaborn.clustermap()
- 关键参数
- scale = “row”:行标准化,突出相对变化趋势
- clustering_method = “ward.D2″:常用层次聚类算法
- annotation_row/col:添加分组注释
- 图形解读
- 树状图显示相似性层次结构
- 热图颜色展示相关程度
🎨 示意风格
左侧与顶部附带树状聚类结构的彩色热图。
✅ 优点
能发现潜在分组关系,非常适合“探索性分析”。
⚠️ 缺点
聚类方法不同可能影响结果,需明确算法。
四、双变量可视化款:带散点 + 热图混合图
当变量较少时(例如10×10以内),可以用更具交互性的**“相关性散点+热图组合图”**。
🧩 适用场景
- 样本量较少但变量重要
- 需要直观展示相关趋势(如线性或非线性)
💡 技术要点
- 推荐工具
- R语言:GGally::ggpairs()
- Python:seaborn.pairplot()
- 图形特征
- 主对角线显示变量分布
- 上三角为r值热图
- 下三角为散点图带拟合线
- 技巧
- 可结合分组变量(hue或color)增强信息密度
- 设置透明度避免点重叠
🎨 示意风格
矩阵式布局:每对变量都有一个散点或相关值。
✅ 优点
信息量丰富,可展示趋势、显著性、分布一体化。
⚠️ 缺点
变量过多会导致图像冗余。
五、高级可视化款:相关网络热图(Correlation Network Heatmap)
当你面对的是几十上百个基因或代谢物时,单纯的方阵已难以解释复杂关系,此时就需要——网络型热图。
🧩 适用场景
- 多组学整合分析
- 模块识别(如WGCNA共表达模块)
- 探索关键节点和调控关系
💡 技术要点
- 构建步骤
- 计算相关矩阵(Pearson/Spearman)
- 设定阈值(如 |r|>0.6, p<0.05)筛选显著相关对
- 使用igraph或Cytoscape可视化网络结构
- 热图形式
- 同时展示模块间相关性(如MEs correlation heatmap)
- R语言可用WGCNA::labeledHeatmap()生成模块热图
- 视觉优化
- 色彩反映相关方向与强度
- 方格大小或透明度代表显著性
🎨 示意风格
模块化方块分布、色彩分明、带有显著性标识。
✅ 优点
结构清晰、可展示系统层级关系,是高水平文章常用图。
⚠️ 缺点
绘制复杂、参数敏感。
📊 如何选择适合你的热图?
| 目标类型 | 推荐热图 | 工具 | 特点 |
| 简单探索 | 基础相关热图 | corrplot/pheatmap | 快速、简洁 |
| 论文展示 | 显著性标记热图 | corrplot + p值矩阵 | 严谨、美观 |
| 模式发现 | 聚类热图 | pheatmap / ComplexHeatmap | 可揭示分组关系 |
| 小样本可视化 | 散点+热图混合图 | GGally / Seaborn | 丰富直观 |
| 多组学整合 | 网络热图 | WGCNA / Cytoscape | 高级表达 |
🎯 实战小结:提升热图质量的三大秘诀
- 先清洗数据再算相关
异常值会极大影响r值!请先去掉异常点或使用稳健相关系数(如biweight midcorrelation)。 - 色彩是信息传达的关键
避免刺眼的纯红纯蓝,推荐使用感知均匀调色板(如viridis、coolwarm)。 - 加注释让图更“说话”
用分组条、星号、聚类树、数值标注等方式,让图既美观又有解释力。
✳️ 写在最后
相关性热图不仅仅是展示结果的“图形工具”,更是数据逻辑的“视觉表达”。
一张好热图,能让评审一眼看出你的结果有条理、可信赖、有故事。
所以,下次再做生信分析时,别再随便扔个corrplot()了。
选对热图类型、搭配合适参数,你的图不止漂亮,还能“说服人”。
