ggplot2画热图展示相关系数

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()  #关闭绘图#

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值