跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布

简介: 跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布

论文

Chromosome-level assemblies of multiple Arabidopsis genomes reveal hotspots of rearrangements with altered evolutionary dynamics

https://www.nature.com/articles/s41467-020-14779-y

拟南芥NC_panGenome.pdf

分析代码的github主页

https://github.com/schneebergerlab/AMPRIL-genomes

论文中组装了7个拟南芥的基因组,做了一些泛基因组相关的分析,数据和大部分代码都公开了,我们试着复现一下其中的图和一些分析过程,今天的推文复现一下论文中的figure2b箱线图和小提琴图展示结构变异的长度分布

示例数据

image.png

读取数据

library(tidyverse)
dat<-read_delim("D:/R_4_1_0_working_directory/env001/data/20230318/Source_Data.Figure2/Fig2b.txt",
                delim = "\t")
dat

最基本的箱线图和小提琴图

library(ggplot2)

ggplot(data = dat,aes(x=`SV-type`,y=length))+
  geom_violin()+
  geom_boxplot()

image.png

这里因为结构变异的长度分布范围非常大,所以出图不太好看,论文里的处理方式是对长度的数值取log10,这样图看起来就好看很多,这个也是一个数据可视化的小技巧

ggplot(data = dat,aes(x=`SV-type`,y=log10(length)))+
  geom_violin()+
  geom_boxplot()

image.png

接下来对整个图进行美化

dat %>% 
  mutate(`SV-type`=factor(`SV-type`,
                          levels = c("INS","DEL","DUP","TL","INV"))) -> dat
ggplot()+
  geom_rect(aes(xmin=-Inf,xmax=2.5,ymin=-Inf,ymax=Inf),
            alpha=0.5)+
  geom_violin(data = dat,
              aes(x=`SV-type`,
                  y=log10(length),
                  color=`SV-type`),
              linewidth=1)+
  geom_boxplot(data = dat,
               aes(x=`SV-type`,
                   y=log10(length),
                   color=`SV-type`),
               width=0.1,outlier.alpha = 0,
               linewidth=1)+
  labs(x=NULL,y="Length of SVs (bp)")+
  scale_y_continuous(breaks = c(2:6),
                     labels = c(expression(10^2),expression(10^3),
                                expression(10^4),expression(10^5),
                                expression(10^6)))+
  theme_bw()+
  theme(legend.position = "none",
        panel.grid = element_blank(),
        panel.background = element_rect(fill="grey"))

image.png

这里遇到一个问题是

geom_rect(aes(xmin=-Inf,xmax=2.5,ymin=-Inf,ymax=Inf),
            alpha=0.5)

添加背景的时候如果添加一层是没有问题的,但是如果再继续叠加一层就会报错,暂时搞不清楚问题出在哪里

示例数据和代码可以给推文点赞,然后点击在看,最后留言获取

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

微信公众号好像又有改动,如果没有将这个公众号设为星标的话,会经常错过公众号的推文,个人建议将 小明的数据分析笔记本 公众号添加星标,添加方法是

点开公众号的页面,右上角有三个点

image.png

点击三个点,会跳出界面

image.png

直接点击 设为星标 就可以了

相关文章
|
4月前
R语言分布滞后线性和非线性模型DLM和DLNM建模应用| 系列文章
R语言分布滞后线性和非线性模型DLM和DLNM建模应用| 系列文章
|
12天前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
11天前
|
数据可视化
R语言自定义图形:ggplot2中的主题与标签设置
【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
|
4月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
4月前
|
数据可视化
【R语言实战】——金融时序分布拟合
【R语言实战】——金融时序分布拟合
|
4月前
|
数据处理
R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数
R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数
|
13天前
|
程序员 数据处理
R语言控制结构:条件判断与循环在R中的应用
【8月更文挑战第27天】R语言中的条件判断和循环结构是编程中不可或缺的部分,它们允许程序员根据特定的条件或规则来控制程序的执行流程。通过灵活使用这些控制结构,可以编写出高效、可维护的R语言代码,以应对复杂的数据处理和分析任务。
|
13天前
|
存储 数据挖掘 数据处理
R语言基础数据类型与结构详解
【8月更文挑战第27天】R语言的基础数据类型与数据结构是理解和操作数据的基础。掌握这些基础概念,对于高效地进行数据分析和统计建模至关重要。
|
4月前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
4月前
|
前端开发 数据可视化 算法
r语言Bootstrap自助法重采样构建统计量T抽样分布近似值可视化|代码分享
r语言Bootstrap自助法重采样构建统计量T抽样分布近似值可视化|代码分享

热门文章

最新文章

下一篇
DDNS