Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >跟着Nature Genetics学作图:R语言ggplot2画图展示基因树的拓扑结构冲突

跟着Nature Genetics学作图:R语言ggplot2画图展示基因树的拓扑结构冲突

作者头像
用户7010445
发布于 2024-04-15 10:14:03
发布于 2024-04-15 10:14:03
21100
代码可运行
举报
运行总次数:0
代码可运行

论文

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

https://doi.org/10.1038/s41588-024-01683-0

今天的推文我们来复现一下论文中的 Fig2b

这里我的思路是画三条线段,用等腰三角形的三个顶点坐标来构造线段的起始和终止坐标,等腰三角形的三个顶点可以用函数polygon_regular()来获取,这个函数是用来构造多边形的顶点的,来自于gridExtra包。比如我要画一个等腰三角形

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
polygon_regular(n=3,phase = pi/2) %>% 
  as.data.frame() %>%
  ggplot(aes(x=V1,y=V2))+
  geom_polygon(fill="#8092b2",alpha=0.9)

加载需要用到的R包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(gridExtra)
library(tidyverse)
library(ggplot2)
library(patchwork)

构造一个函数用来单个图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myfun<-function(linecolor,linewid,
                label.01,label.01.size,
                label.02,label.02.size,
                title.text,
                title.size){
  polygon_regular(n=3) %>% 
    as.data.frame() %>% 
    head(n=3) -> dat
  dat[3,] %>% 
    bind_cols(dat[1,] %>% 
                rename("V3"="V1",
                       "V4"="V2")) -> dat01
  
  dat[1,] %>% 
    bind_cols(dat[2,] %>% 
                rename("V3"="V1",
                       "V4"="V2")) -> dat02
  
  (dat[3,]/2 + dat[1,]/2) %>%
    bind_cols((dat[3,]/2 + dat[2,]/2) %>% 
                rename("V3"="V1",
                       "V4"="V2")) -> dat03
  dat01 %>% 
    bind_rows(dat02) %>% 
    bind_rows(dat03) %>% 
    ggplot()+
    geom_segment(aes(x=V1,xend=V3,y=V2,yend=V4),
                 linewidth=linewid,
                 color=linecolor,
                 lineend = "round",
                 linejoin = "round")+
    theme_bw()+
    theme(panel.grid = element_blank(),
          axis.title = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          panel.border = element_rect(color=linecolor,linewidth=linewid))+
    coord_equal()+
    geom_text(data=dat[2,] %>% 
                bind_rows(dat[3,]/2 + dat[2,]/2) %>% 
                bind_rows(dat[3,]) %>% 
                mutate(label=label.01),
              aes(x=V1,y=V2,label=label),
              vjust=1.5,size=label.01.size)+
    geom_text(data=data.frame(V1=c(dat[2,1],dat[3,1]),
                              V2=1,
                              label=label.02),
              aes(x=V1,y=V2,label=label),
              size=label.02.size,vjust=1,hjust=c(0,1))+
    labs(title=title.text)+
    theme(plot.title = element_text(hjust=0.5,size=title.size))+
    xlim(-1,1)+
    ylim(-1,1.2)
  
}

先画一个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myfun(linecolor = "#8092b2",
      linewid = 3,
      label.01 = c("H","B","C"),
      label.01.size = 8,
      label.02 = c("Tree1","57%"),
      label.02.size = 8,
      title.text = "HBC lineage",
      title.size = 20) -> p1
p1

画9个然后拼图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myfun(linecolor = "#8092b2",
      linewid = 3,
      label.01 = c("H","B","C"),
      label.01.size = 8,
      label.02 = c("Tree1","57%"),
      label.02.size = 8,
      title.text = "HBC lineage",
      title.size = 20) -> p1

myfun(linecolor = "#66b9a1",
      linewid = 3,
      label.01 = c("B","A","C"),
      label.01.size = 8,
      label.02 = c("Tree1","48%"),
      label.02.size = 8,
      title.text = "ABC lineage",
      title.size = 20) -> p2

myfun(linecolor = "#dba134",
      linewid = 3,
      label.01 = c("B","D","C"),
      label.01.size = 8,
      label.02 = c("Tree1","46%"),
      label.02.size = 8,
      title.text = "BCD lineage",
      title.size = 20) -> p3

myfun(linecolor = "#8092b2",
      linewid = 3,
      label.01 = c("B","H","C"),
      label.01.size = 8,
      label.02 = c("Tree2","25%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p4

myfun(linecolor = "#8092b2",
      linewid = 3,
      label.01 = c("C","H","B"),
      label.01.size = 8,
      label.02 = c("Tree3","18%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p7


myfun(linecolor = "#66b9a1",
      linewid = 3,
      label.01 = c("C","A","B"),
      label.01.size = 8,
      label.02 = c("Tree2","28%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p5


myfun(linecolor = "#66b9a1",
      linewid = 3,
      label.01 = c("A","B","C"),
      label.01.size = 8,
      label.02 = c("Tree3","24%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p8


myfun(linecolor = "#dba134",
      linewid = 3,
      label.01 = c("C","D","B"),
      label.01.size = 8,
      label.02 = c("Tree2","31%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p6


myfun(linecolor = "#dba134",
      linewid = 3,
      label.01 = c("D","B","C"),
      label.01.size = 8,
      label.02 = c("Tree3","23%"),
      label.02.size = 8,
      title.text = NULL,
      title.size = 20) -> p9



wrap_plots(list(p1,p2,p3,p4,p5,
                        p6,p7,p8,p9))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
跟着Nature Genetics学作图:R语言ggplot2曼哈顿图完整示例
https://www.nature.com/articles/s41588-022-01051-w
用户7010445
2023/01/06
1.2K0
跟着Nature Genetics学作图:R语言ggplot2曼哈顿图完整示例
跟着Nature Genetics学作图:R语言ggplot2散点图及多图共享图例
https://www.nature.com/articles/s41588-022-01051-w
用户7010445
2023/01/06
7020
跟着Nature Genetics学作图:R语言ggplot2散点图及多图共享图例
跟着Nature Genetics学作图:R语言ggplot2普通箱线图/分组箱线图/分面箱线图
https://www.nature.com/articles/s41588-022-01051-w
用户7010445
2023/01/06
1K0
跟着Nature Genetics学作图:R语言ggplot2普通箱线图/分组箱线图/分面箱线图
跟着Nature Communications学作图:R语言ggplot2画图展示捐赠者的临床概况
https://www.nature.com/articles/s41467-022-33663-5#Sec18
用户7010445
2023/01/06
4480
跟着Nature Communications学作图:R语言ggplot2画图展示捐赠者的临床概况
跟着NatureMetabolism学作图:R语言ggplot2画热图展示基因表达量
https://www.nature.com/articles/s42255-022-00629-2#Sec15
用户7010445
2023/01/06
1.2K0
跟着NatureMetabolism学作图:R语言ggplot2画热图展示基因表达量
跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
https://www.nature.com/articles/s41586-022-04808-9#MOESM8
用户7010445
2023/01/06
2K0
跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
跟着Nature Genetics学作图:R语言ggplot2散点图突出强调其中某些点
https://www.nature.com/articles/s41588-022-01051-w
用户7010445
2023/01/06
6420
跟着Nature Genetics学作图:R语言ggplot2散点图突出强调其中某些点
R语言ggplot2画棒棒糖图展示KEGG富集分析结果
https://www.nature.com/articles/s41588-024-01683-0
用户7010445
2024/04/15
3880
R语言ggplot2画棒棒糖图展示KEGG富集分析结果
跟着Nature Plants学作图:R语言ggplot2画分组折线图和置信区间
https://www.nature.com/articles/s41477-022-01146-6#Sec44
用户7010445
2022/05/23
1.5K0
跟着Nature Plants学作图:R语言ggplot2画分组折线图和置信区间
跟着Nature学作图:R语言ggplot2热图
https://www.nature.com/articles/s41586-022-05275-y
用户7010445
2023/01/06
7460
跟着Nature学作图:R语言ggplot2热图
跟着Nature学作图:R语言ggplot2簇状柱形图完整示例
https://www.nature.com/articles/s41586-022-04664-7#Sec33
用户7010445
2023/01/06
9650
跟着Nature学作图:R语言ggplot2簇状柱形图完整示例
跟着Nature Plants学作图:R语言ggplot2画热图展示基因表达量
https://www.nature.com/articles/s41477-022-01146-6#Sec44
用户7010445
2023/01/06
9830
跟着Nature Plants学作图:R语言ggplot2画热图展示基因表达量
跟着Nature Genetics学做图:R语言ggplot2做热图展示基因存在缺失变异
作图代码不是难点,主要是作图数据准备成什么格式。这里用来填充颜色的数据,基因不存在统一填充为0,基因存在填充为不同的群体值。
用户7010445
2023/12/19
3860
跟着Nature Genetics学做图:R语言ggplot2做热图展示基因存在缺失变异
跟着Nature学作图:R语言ggplot2柱形图添加误差线和频率分布直方图
https://www.nature.com/articles/s41586-022-05275-y
用户7010445
2023/01/06
1.1K0
跟着Nature学作图:R语言ggplot2柱形图添加误差线和频率分布直方图
跟着Science学作图:R语言ggplot2画箭头展示变量对主成分的贡献
https://www.science.org/doi/10.1126/science.abk0989
用户7010445
2022/05/23
7820
跟着Science学作图:R语言ggplot2画箭头展示变量对主成分的贡献
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
https://www.nature.com/articles/s41586-022-04664-7#Sec33
用户7010445
2023/01/06
3.3K0
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
跟着Nature Genetics学作图:R语言ggplot2做簇状的堆积柱形图
https://www.nature.com/articles/s41588-023-01516-6
用户7010445
2024/01/10
5840
跟着Nature Genetics学作图:R语言ggplot2做簇状的堆积柱形图
跟着PNAS学作图:R语言ggplot2绘制面积图
这个是做植物基因组比对的一个工具,正好最近在看这个论文。论文中公布了部分作图代码,作图使用到的是R语言的ggplot2。跟着其中的代码学习一下。论文本地文件是e2113075119.full.pdf
用户7010445
2022/02/17
8690
跟着PNAS学作图:R语言ggplot2绘制面积图
跟着ISEM学作图:R语言ggtree+ggplot2组合进化树和气泡图
论文 Conserved and reproducible bacterial communities associate with extraradical hyphae of arbuscular mycorrhizal fungi image.png 今天的推文我们来重复一下论文中的 Figure 2 image.png 没有找到论文提供的原始数据,这里数据我自己构造一份 首先是左侧的进化树文件 (((A8:0.9735669859,((A5:0.7219205995,A9:0.53850
用户7010445
2022/05/23
1.4K0
跟着ISEM学作图:R语言ggtree+ggplot2组合进化树和气泡图
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
https://www.nature.com/articles/s41586-022-05275-y
用户7010445
2023/01/06
6430
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
推荐阅读
跟着Nature Genetics学作图:R语言ggplot2曼哈顿图完整示例
1.2K0
跟着Nature Genetics学作图:R语言ggplot2散点图及多图共享图例
7020
跟着Nature Genetics学作图:R语言ggplot2普通箱线图/分组箱线图/分面箱线图
1K0
跟着Nature Communications学作图:R语言ggplot2画图展示捐赠者的临床概况
4480
跟着NatureMetabolism学作图:R语言ggplot2画热图展示基因表达量
1.2K0
跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
2K0
跟着Nature Genetics学作图:R语言ggplot2散点图突出强调其中某些点
6420
R语言ggplot2画棒棒糖图展示KEGG富集分析结果
3880
跟着Nature Plants学作图:R语言ggplot2画分组折线图和置信区间
1.5K0
跟着Nature学作图:R语言ggplot2热图
7460
跟着Nature学作图:R语言ggplot2簇状柱形图完整示例
9650
跟着Nature Plants学作图:R语言ggplot2画热图展示基因表达量
9830
跟着Nature Genetics学做图:R语言ggplot2做热图展示基因存在缺失变异
3860
跟着Nature学作图:R语言ggplot2柱形图添加误差线和频率分布直方图
1.1K0
跟着Science学作图:R语言ggplot2画箭头展示变量对主成分的贡献
7820
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
3.3K0
跟着Nature Genetics学作图:R语言ggplot2做簇状的堆积柱形图
5840
跟着PNAS学作图:R语言ggplot2绘制面积图
8690
跟着ISEM学作图:R语言ggtree+ggplot2组合进化树和气泡图
1.4K0
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
6430
相关推荐
跟着Nature Genetics学作图:R语言ggplot2曼哈顿图完整示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档