前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature Communication学作图:R语言ggpubr包画箱线图并添加显著性P值

跟着Nature Communication学作图:R语言ggpubr包画箱线图并添加显著性P值

作者头像
用户7010445
发布2023-01-06 18:36:26
5900
发布2023-01-06 18:36:26
举报

论文

Microbiomes in the Challenger Deep slope and bottom-axis sediments

https://www.nature.com/articles/s41467-022-29144-4#code-availability

对应代码链接

https://github.com/ucassee/Challenger-Deep-Microbes

论文里提供了大部分图的数据和代码,很好的学习材料,感兴趣的同学可以找来参考,今天的推文重复一下论文中的Figure1b

论文中提供的代码是用ggpubr这个R包实现的,如果比较着急要结果可以使用这个R包来作图,如果是学习为目的,还是推荐ggplot2的基础

部分数据集截图

image.png

读取数据集

代码语言:javascript
复制
dat<-read.delim("data/20220602/NCfigure1b.txt",
                header = TRUE,
                check.names = FALSE,
                sep="\t")
head(dat)

带有百分号读取进来是字符,我们把它转换成数字

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


dat %>% 
  mutate(`Novel 16s miTags (%)` = dat$`Novel 16s miTags (%)` %>%  parse_number()) -> dat01

对表示分组的文本进行处理

代码语言:javascript
复制
dat01 %>% 
  mutate(group=case_when(
    Group == "Bottom-axis" ~ "Bottom",
    Group == "Slope" ~ "Slope",
    Group == "Mariana Water" ~ "Mariana Water",
    TRUE ~ "Deep sea"
  )) -> dat02

赋予因子水平

代码语言:javascript
复制
dat02$group <- factor(dat02$group, 
                      levels=c("Bottom", "Slope","Deep sea", "Mariana Water"), 
                      ordered=TRUE)
table(dat02$group)

作图代码

代码语言:javascript
复制
p1<- ggboxplot(dat02, x="group", y="Novel 16s miTags (%)", 
               fill = "group", width = 0.5,
               xlab = "",
               palette = c("#F8766D","#00BFC4","#FEFF99","#B14A87"))+
  ylab(label = "Novel 16S miTags (%)")+
  #scale_y_continuous(labels = scales::percent)+
  guides(fill=F)+
  scale_x_discrete(labels = c("Bottom\naxis\n(n=17)", 
                              "Slope\n(n=20)",
                              "Deep\nsed\n(n=20)",
                              "Mariana\nwater\n(n=7)"))+
  theme(axis.text = element_text(size=10,family="serif"))+
  stat_compare_means(comparisons=p1_comparisons,
                     label.y = c( 48, 53,40, 58),  
                     method = "wilcox.test",size=3) # Add pairwise comparisons p-value 
p1

image.png

试一下论文中提供的拼图代码

代码语言:javascript
复制
library(cowplot)
aligned_plots<- align_plots(p1, p1,align="h")
ggdraw( xlim = c(0, 1.1), ylim = c(0, 0.30))+
  draw_plot(aligned_plots[[1]], x=0,y=0,  width=0.5, height = 0.28)+
  draw_plot(aligned_plots[[2]], x=0.50,y=0, width = 0.5, height = 0.28)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文
  • 对应代码链接
  • 部分数据集截图
  • 读取数据集
  • 对表示分组的文本进行处理
  • 赋予因子水平
  • 作图代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档