g

gtrobot

V1

2022/04/29阅读:32主题:全栈蓝

R语言画显著性差异:代码分享

我的本期总结

# 使用factor函数设置dose列为因子
# 使用group_by函数对数据进行分组
# 使用rstatix包中的wilcox_test函数进行组内差异显著性检验
# 使用rstatix包中的add_significance函数添加显著性标签
# 使用rstatix包中的add_xy_position函数获得位置信息
# 使用geom_boxplot函数画箱线图
# 使用scale_fill_manual函数设置填充色
# 使用ggpubr包中的stat_pvalue_manual函数画显著性标签
# 使用labs函数设置caption
# 使用theme_test主题
# 使用theme函数设置主题细节
# 使用ggtext包中的element_markdown
# 使用scale_y_continuous函数设置Y轴属性

读取数据集

library(tidyverse)
library(rstatix)
library(ggpubr)
library(ggtext)

df <- ToothGrowth
df$dose <- factor(df$dose)

计算组内p值

df_p_val1 <- df %>% 
  group_by(dose) %>% 
  wilcox_test(formula = len ~ supp) %>% 
  add_significance(p.col = 'p',cutpoints = c(0,0.001,0.01,0.05,1),symbols = c('***','**','*','ns')) %>% 
  add_xy_position(x='dose')

画箱线图(组内p值)

ggplot()+
  geom_boxplot(data = df,mapping = aes(x=dose,y=len,fill=supp),width=0.5)+
  scale_fill_manual(values = c('#E21C21','#3A7CB5'))+
  stat_pvalue_manual(df_p_val1,label = '{p.signif}',tip.length = 0)+
  labs(x='Dose',y='Len',
       caption = "Visualization by <span style='color:#DD6449'>gtrobot</span>")+
  guides(fill=guide_legend(title = 'Supp'))+
  theme_test()+
  theme(axis.text = element_text(color = 'black'),
        plot.caption = element_markdown(face = 'bold'),
        legend.position = c(0.7,0.1),
        legend.direction = 'horizontal')+
  scale_y_continuous(limits = c(0,40),breaks = seq(0,40,10),expand = c(0,0))

计算组间p值

df_p_val2 <- df %>% 
  wilcox_test(formula = len ~ dose) %>% 
  add_significance(p.col = 'p',cutpoints = c(0,0.001,0.01,0.05,1),symbols = c('***','**','*','ns')) %>% 
  add_xy_position()

画箱线图(组内、组间p值)

ggplot()+
  geom_boxplot(data = df,mapping = aes(x=dose,y=len,fill=supp))+
  scale_fill_manual(values = c('#E21C21','#3A7CB5'))+
  stat_pvalue_manual(data = df_p_val1,label = '{p.signif}',tip.length = 0)+
  stat_pvalue_manual(data = df_p_val2,label = '{p.signif}',tip.length = 0.01,y.position = df_p_val2$y.position+2)+
  labs(x='Dose',y='Len',
       caption = "Visualization by <span style='color:#DD6449'>gtrobot</span>")+
  theme_test()+
  theme(axis.text = element_text(color = 'black'),
        plot.caption = element_markdown(face = 'bold'),
        legend.position = c(0.7,0.1),
        legend.direction = 'horizontal')+
  scale_y_continuous(limits = c(0,50),breaks = seq(0,50,10),expand = c(0,0))

分类:

数学

标签:

数学编程

作者介绍

g
gtrobot
V1