df<-read.csv("dataset1.csv",header = T,row.names = 1)
df
df1<-cor(qwe)#注意:每列值必须为数值#
upper.tri(df1) #我们的目的:去除右上角的数值,保留左下角的数值。将右上角的内容去除。结果显示为:右上角返回true,左下角为false#
df1[upper.tri(df1)]<-NA #把右上角的值赋值为none(缺失)#
df1
class(df1) #查看数据集的格式#
df2<-as.data.frame(df1)#矩阵转化为数据框#
class(df2)
df2$variable<-rownames(df2)
df2
library(tidyr)
df3<-pivot_longer(df2, #数据集
cols=c(MEP,IL3,IL2,IL1), #各变量名称#
values_drop_na=TRUE) #去除缺失值 #
df3
#出结果后,为两列数值,无法作图。所以需要加一列数据#
library(ggplot2)
df3$variable<-factor(df3$variable,levels=c("MEP","IL3","IL2","IL1"))#横轴,从左到右的顺序
df3$name<-factor(df3$name,levels = c("IL1","IL2","IL3","MEP")) #y轴,从下往上的顺序#
df3$value<-round(df3$value,2) #相关系数值的小数点保留2位#
p<-ggplot(df3,aes(x=variable,y=name))+ #variable做横轴,name做纵轴#
geom_tile(aes(fill=value))+
geom_text(aes(label=value))+#将相关系数显示出来#
#结果分散,需要重新排布#
scale_fill_gradient2(low="green",mid="white",high="red")+ #美化。低数值的背景为绿色,中等数值为白色,高数值为红色#
theme(panel.background = element_blank(),
axis.ticks=element_blank())+ #把灰色的背景去掉,只留下方块# #把坐标轴的横线或者竖线去掉#
labs(x=NULL,y=NULL)#把坐标轴的文字标签去掉#
pdf("cor_heatmap.pdf",width = 5,height = 5) #保存为pdf格式#
p
dev.off() #关闭绘图#
ggplot2画热图展示相关系数
最新推荐文章于 2025-02-08 22:00:56 发布