前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言ggplot2画棒棒糖图展示KEGG富集分析结果

R语言ggplot2画棒棒糖图展示KEGG富集分析结果

作者头像
用户7010445
发布2024-04-15 18:13:16
590
发布2024-04-15 18:13:16
举报

论文

Genome assemblies of 11 bamboo species highlight diversification induced by dynamic subgenome dominance

https://www.nature.com/articles/s41588-024-01683-0

论文中提供的大部分的作图数据,今天的推文我们来复现一下论文中的Figure 5b

部分示例数据截图

读取数据

代码语言:javascript
复制
library(readxl)
library(tidyverse)

?read_excel
fig5b.dat<-read_excel("data/20240405/41588_2024_1683_MOESM7_ESM.xlsx",
                      sheet = "Fig5b")
fig5b.dat

数据预处理

代码语言:javascript
复制
myfun<-function(x){
  return(str_replace_all(x,"-","_"))
}

fig5b.dat %>% 
  rename_with(myfun) %>% 
  mutate(Type=str_replace(Type,pattern = "Sub",""),
         y=nrow(.):1,
         Q_value=as.numeric(Q_value)) -> fig5b.dat.01
  
fig5b.dat %>% 
  rename_with(myfun) %>% 
  mutate(Type=str_replace(Type,pattern = "Sub",""),
         y=nrow(.):1,
         Q_value=as.numeric(Q_value)) %>% 
  group_by(Type) %>% 
  summarise(max_value=max(y),
            min_value=min(y)) %>% 
  ungroup() -> fig5b.dat.02

数据预处理的代码主要做的事儿是 添加一列用于作图的Y轴,把数据标题里的连接符-换成下划线;构造数据用来画图中的颜色条

作图代码

代码语言:javascript
复制
ggplot()+
  geom_segment(data=fig5b.dat.01,
               aes(x=0,xend=-log(Q_value,20),
                   y=y,yend=y))+
  geom_point(data=fig5b.dat.01,
             aes(x=-log(Q_value,20),
                 y=y,
                 size=log10(Fg_num),
                 color=Type))+
  geom_rect(data=fig5b.dat.02,
               aes(xmin=0,xmax=-1,ymin=min_value-0.5,ymax=max_value+0.5,
                   fill=Type))+
  geom_text(data=fig5b.dat.02,
            aes(x=-0.5,y=(min_value+max_value)/2,label=Type),
            angle=90,size=5)+
  scale_y_continuous(breaks = 1:35,
                     labels = fig5b.dat.01$Descrption,
                     expand = expansion(mult = c(0,0)))+
  theme_bw(base_size = 20)+
  theme(panel.grid = element_blank(),
        panel.border = element_blank(),
        axis.ticks.y = element_blank())+
  labs(x=expression(-Log[20](qvalue)),y=NULL)+
  scale_x_continuous(expand = expansion(mult = c(0,0.1)))+
  coord_cartesian(clip = "off")+
  scale_size_continuous(breaks = c(0.5,2),
                        name = expression(Log[10](gene~number)),
                        labels = c("Min:0.5","Max:2.0"))+
  guides(fill="none",
         color="none",
         size=guide_legend(nrow = 1,
                           title.position = "top",
                           title.hjust = 0.5))+
  theme(legend.position = "bottom",
        legend.justification = 0)+
  scale_fill_manual(values = c("PSG"="#c15259",
                               "D"="#609c64",
                               "C"="#6da6c2",
                               "A"="#90be4e",
                               "WB"="#a1a1a1"))+
  scale_color_manual(values = c("PSG"="#c15259",
                               "D"="#609c64",
                               "C"="#6da6c2",
                               "A"="#90be4e",
                               "WB"="#a1a1a1"))

纵坐标轴的文本部分部分改成黑体用代码如何来实现暂时想不到了,出图后手动编辑吧

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文
  • 读取数据
  • 数据预处理
  • 作图代码
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档