查看原文
其他

ggplot2添加躺平版P_value

ANERYAN R语言数据分析指南 2023-06-15

今天来主要介绍如何在常见的箱线图基础上水平添加显著性标记,也许恰好您正好有此特殊需求,希望对各位观众老爷有所帮助;下面来看具体案例;

有需要的观众老爷欢迎加入小编的VIP群,目前已经上传「2021-2022两年公众号文档数据+代码约180篇左右」包含付费文档,扫描文末尾二维码加小编微信「付费99元」后邀请进群,「由于群名额有限人满之后将不在添加新成员」,有需要的请尽早加入,早进早享受;「一定让你感受到物超所值」加入小编的VIP如果你有一些让我感兴趣的图表提供示例数据小编若有时间会写成推文发送

加载R包

library(tidyverse)
library(rstatix)
library(ggprism)
library(ggpubr)

定义主题

theme_niwot <- function(){
  theme_test() +
    theme(axis.title.x = element_blank(),
          axis.line = element_line(color = "#3D4852"),
          axis.ticks = element_line(color = "#3D4852"),
          panel.grid.major.y = element_line(color = "#DAE1E7"),
          panel.grid.major.x = element_blank(),
          plot.margin = unit(rep(0.2,4),"cm"),
          axis.text = element_text(size = 10, color = "#22292F"),
          axis.title = element_text(size = 10, hjust = 1),
          axis.title.y = element_blank(),
          axis.text.y = element_text(margin = margin(r = 5)),
          axis.text.x = element_text(margin = margin(t = 5)),
          legend.position = "non")
}

统计分析

stat.test2 <- ToothGrowth %>% mutate(dose=as.factor(dose)) %>% group_by(dose) %>% 
  t_test(len ~ supp) %>%
  adjust_pvalue() %>% add_significance("p.adj") %>% add_xy_position(x="dose"

stat.test3 <- ToothGrowth %>% 
  t_test(len ~ dose,p.adjust.method = "bonferroni") %>%
  adjust_pvalue() %>% add_significance("p.adj") %>% add_xy_position() 


res.aov <- ToothGrowth %>% mutate(dose=as.factor(dose)) %>% anova_test(len ~ dose)

数据可视化

ToothGrowth %>% mutate(dose=as.factor(dose)) %>% 
  ggplot(aes(dose,len))+
  stat_boxplot(geom = "errorbar",width=0.2,aes(fill = supp),position = position_dodge(1)) +
  geom_boxplot(aes(fill= supp),position = position_dodge(1))+
  stat_pvalue_manual(stat.test2,label = "p.adj.signif",label.size=6,hide.ns = T, coord.flip = TRUE)+
  stat_pvalue_manual(stat.test3,label = "p.adj.signif",label.size=6,hide.ns = T, coord.flip = TRUE)+
  coord_flip()+
  labs(subtitle = get_test_label(res.aov, detailed = TRUE))+
  scale_y_continuous(expand=c(0,0),limits = c(0,42))+
  theme_niwot()+
  scale_fill_manual(values=c("#00AFBB""#E7B800"))

本节介绍到此结束,主要在于「stat_pvalue_manual」函数添加「coord.flip = TRUE」参数使得图形得以躺平添加显著性标记,一点很小的细节;那么若要在分面图上进行躺平该如何操作,这个我们以后在进行讨论;「有需要的观众老爷欢迎加入小编的VIP交流群,请备注一下信息及来意」,绝让你体会到物超所值

小编微信

关注下方公众号下回更新不迷路


往期推荐



ggplot2优雅的自定义轴文本颜色

ggplot2再话箱线图之几何填充

[会员专享]nature microbiology图表复现之热图终结版

ggplot2优雅的绘制全能型箱线图

ggplot2优雅的绘制多组配对箱线图

学习R数据可视化,你缺少这么一个群

ggplot2优雅的拆分堆砌条形图

箱线图进行方差分析并添加显著性标记

《R构建函数基础篇》计算多样性指数及绘图

分面绘图注释增强版之annotation_custom2

ggplot2优雅的给传统气泡图添加新元素

R自定义构建函数绘制相关性条形图

R自定义构建函数与批量绘图

ggplot2绘制正负分布条形图

[会员转享] ggplot2跨分面进行显著性标记

跟着nature communications学绘图(9) ggplot2绘制误差线点图

跟着nature communications学绘图(8) ggprism优雅的添加p值

ggplot2优雅的绘制圆点柱状图

ggplot2优雅的给图形添加渐变背景

ggplot2优雅对并排条形图添加显著性标记

ggplot2绘制CNS级热图

[会员专享] ggplot2绘制CNS级的柱状图


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存