R语言geom_tile绘制热图

data_df <- data.frame(Gene = rep(paste0('gene',1:10),4),
                      type= rep(c(rep("TSG",5),rep("OG",5)),4),
                      Cohort = c(rep("cohort1",10),rep("cohort2",10),
                                  rep("cohort3",10),rep("cohort4",10)),
                      Percent = round(runif(40,0,80),0))
# data_df[1:3,]

#调整y轴基因的顺序
data_df$Gene<-factor(data_df$Gene,levels = rev(unique(data_df$Gene)))

library(ggplot2)
#画热图
ggplot(data_df,aes(x=Cohort,y=Gene,fill=ifelse(type=='TSG',Percent,ifelse(type=='OG',Percent*(-1),Percent+200)))) +
  geom_tile(color="gray",size=0.5)+  #色块函数:color和size分别指定方块边线的颜色和粗细
  coord_equal() + # 绘制正方形,长宽相等
  scale_fill_gradientn(colours = c('red','white','blue','white','gray'),
                       limits=c(-100,300),
                       breaks=c(-100,0,100,200,300)) +
  xlab("Cohorts") + # x轴名称
  ylab("Genes") + # y轴名称
  labs(title = "heatmap") + # 图名称
  geom_text(aes(label=ifelse(Percent>0,Percent,'')),color='black') + # 0不显示
  theme(
    axis.text.x.bottom = element_text(size=12,angle = -45,
                                      hjust = 0,vjust= 0.5),#x轴刻度文字大小
    axis.text.y.left = element_text(size = 12), #y轴刻度文字大小
    axis.ticks = element_blank(), #不显示坐标轴刻度
    axis.title.x =element_text(size=15), # x轴title字体大小
    axis.title.y=element_text(size=15), # y轴title字体大小
    title = element_text(size=16),   # title字体大小
    panel.border = element_blank(), # 去掉外边框线
    legend.position = 'none'  # 去除legend
  )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值