目录
- 0、引言(绘制相关性热图)
- 1. 准备数据
- 方法一:corrplot 简洁相关热图
- 方法二:pheatmap 论文级热图(最常用)
- 方法三:ggplot2 绘制相关性热图(tidyverse)
0、引言(绘制相关性热图)
两种主流方案:corrplot(简单快速)、pheatmap(功能更强,支持聚类、注释,科研论文常用),附带完整可运行代码。
1. 准备数据
# 内置mtcars演示数据集,换成你的数据框即可data(mtcars)# 计算相关系数矩阵cor_mat<-cor(mtcars,method="pearson")# method可选:pearson / spearman / kendall方法一:corrplot 简洁相关热图
# 安装(首次运行)# install.packages("corrplot")library(corrplot)corrplot(cor_mat,method="color",# color色块, circle圆圈, square方块type="upper",# upper上三角 / lower下三角 / full全部col=colorRampPalette(c("#2166ac","white","#b2182b"))(100),tl.col="black",# 标签文字颜色tl.srt=45,# 标签旋转角度addCoef.col="black",# 是否显示相关系数,NULL不显示number.cex=0.7,# 相关系数字号diag=FALSE# 是否展示对角线)## circle + colorful numbercorrplot(cor_mat,order='AOE',type='upper',tl.pos='d',method='pie',tl.col="black")corrplot(cor_mat,add=TRUE,type='lower',method='number',order='AOE',diag=FALSE,tl.pos='n',cl.pos='n',col='black')方法二:pheatmap 论文级热图(最常用)
支持行/列聚类、分组注释、自定义色阶。
# install.packages("pheatmap")library(pheatmap)pheatmap(cor_mat,color=colorRampPalette(c("#4575b4","white","#d73027"))(100),display_numbers=TRUE,# 是否显示相关系数number_color="black",fontsize_number=8,cluster_rows=TRUE,# 行聚类cluster_cols=TRUE,# 列聚类show_rownames=TRUE,show_colnames=TRUE,treeheight_row=20,treeheight_col=20,main="Correlation Heatmap")只画下三角/上三角(pheatmap实现)
# 把上三角赋值为NA,只显示下三角cor_mat_tri<-cor_mat cor_mat_tri[upper.tri(cor_mat_tri)]<-NApheatmap(cor_mat_tri,color=colorRampPalette(c("#4575b4","white","#d73027"))(100),display_numbers=TRUE,na_col="white"# NA区域填充白色)方法三:ggplot2 绘制相关性热图(tidyverse)
适合需要完全自定义主题,拼接ggplot图表。
# install.packages("tidyverse")library(tidyverse)cor_mat%>%as.data.frame()%>%rownames_to_column("Var1")%>%pivot_longer(-Var1,names_to="Var2",values_to="corr")%>%ggplot(aes(x=Var1,y=Var2,fill=corr))+geom_tile()+geom_text(aes(label=round(corr,2)),size=2.5)+scale_fill_gradient2(low="#2166ac",mid="white",high="#b2182b",limits=c(-1,1))+theme_bw()+theme(axis.text.x=element_text(angle=45,hjust=1))+labs(fill="Correlation")