ggplot做热图添加*号

有人问我,ggplot做热图上面如何标记显著性,且不说之前公众号发过相关性分析的热图做法,也讲过好多次标注标签。其实很简单,只是穿了个马甲就不认识了。这里我们用GSEA的数据做个图,GSEA的分析参考之前的帖子,不再赘述(一文解决R语言GSEA分析及可视化)。数据纯属虚构,没有意义,也不要问我为什么数据是这样。示例数据及代码已上传群文件!

图片

加载数据及R包,按照阈值增加标签:

etwd("D:/KS项目/公众号文章/ggplot图加符号")
df <- read.csv("GSEA_plot.csv", header = T)
library(ggplot2)
library(tidyverse)
library(reshape2)
colnames(df)
data <- df %>% mutate(text = case_when(
  p.adjust < 0.01 ~ "*"))

ggplot作图即可:

ggplot(data, aes(group, Description)) + 
  geom_tile(aes(fill = NES), colour = "black", size = 0.5)+
  scale_fill_gradient2(low = '#1A5592',mid = "white",high = "#B83D3D") + 
  geom_text(aes(label=text),col ="black",size = 5) +
  theme_minimal() + 
  theme(axis.title.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.title.y=element_blank(), 
        axis.text.x = element_text(size = 10,color = 'black',angle = 90, hjust = 1), 
        axis.text.y = element_text(size = 10,color = 'black'),
        legend.position = 'top') + 
  scale_y_discrete(position = "right")

图片

可以用*号,也可以用其他任何能打出来的符号:

data1 <- df %>% mutate(text = case_when(
  p.adjust < 0.01 ~ "⚪"))
ggplot(data1, aes(group, Description)) + 
  geom_tile(aes(fill = NES), colour = "black", size = 0.5)+
  scale_fill_gradient2(low = '#1A5592',mid = "white",high = "#B83D3D") + 
  geom_text(aes(label=text),col ="black",size = 5) +
  theme_minimal() + 
  theme(axis.title.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.title.y=element_blank(), 
        axis.text.x = element_text(size = 10,color = 'black',angle = 90, hjust = 1), 
        axis.text.y = element_text(size = 10,color = 'black'),
        legend.position = 'top') + 
  scale_y_discrete(position = "right")

图片

重点来了,一个小知识点,ggplot作图很多时候因子排列顺序会按照默认的比如说首字母,会与自己想要的顺序不一致,经常有小伙伴问这个问题。其实用因子提前排好序就可以了。


data1$group_new <- factor(data1$group, levels = c("NK","DC","CD14+ Mono","FCGR3A+ Mono")) 
ggplot(data1, aes(group_new, Description)) + 
  geom_tile(aes(fill = NES), colour = "black", size = 0.5)+
  scale_fill_gradient2(low = '#1A5592',mid = "white",high = "#B83D3D") + 
  geom_text(aes(label=text),col ="black",size = 5) +
  theme_minimal() + 
  theme(axis.title.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.title.y=element_blank(), 
        axis.text.x = element_text(size = 10,color = 'black',angle = 90, hjust = 1), 
        axis.text.y = element_text(size = 10,color = 'black'),
        legend.position = 'top') + 
  scale_y_discrete(position = "right")

图片

每天学一点,每次懂一点知识,离学会就不远了。觉得分享对你有的话,点个赞,风向一下再走呗!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值