20231225散点箱线图+显著性检验

R进阶绘图系列主要是带领大家绘制一些科研中常用到的组合图形,力争在表达更多信息的同时而又不失美观,该系列会持续更新,有需要的小伙伴赶紧关注起来吧。

预备知识

今天的内容是连续型变量的组间差异比较,首先来说独立样本。

两组独立样本:如果数据同时满足正态性和方差齐性,可以采用独立样本t检验或者Wilcoxon秩和检验,如果不满足可采用Wilcoxon秩和检验。

两组以上独立样本:如果数据同时满足正态性和方差齐性,可以采用方差分析(ANOVA)或者Kruskal检验,如果不满足可采用Kruskal检验。

独立样本t检验检验和方差分析(ANOVA)都是参数检验,对数据分布具有一定的假设,在符合检验假设的情况下,建议采用参数检验。

Wilcoxon秩和检验和Kruskal检验都是非参数检验,可用于呈偏态分布或者组间不满足方差齐性的数据,对数据分布无要求。

接下来说非独立样本。

两组非独立样本:如果数据满足正态性,可以采用配对t检验或者Wilcoxon符号秩检验,如果不满足可采用Wilcoxon符号秩检验。

两组以上非独立样本:如果数据同时满足正态性和方差齐性,可以采用重复测量方差分析(Repeated Measures ANOVA)或者Friedman M检验,如果不满足可采用Friedman M检验。

配对t检验和重复测量方差分析(Repeated Measures ANOVA)都是参数检验,Wilcoxon符号秩检验和Friedman M检验都是非参数检验。

大家在绘图前要首先为自己的数据选择合适的检验方法,不要只求出图哦。

写上面一段话,我都快把自己给绕晕了,个人能力有限,如果大家发现任何问题,欢迎后台留言指正,我会在公众号底部做一个纠错专栏,所有出现错误然后纠正后的内容会放在那里(ps:因为基本上改不了原文)。

绘图

加载包和数据

# 加载包、导入数据
library(ggpubr) # 继承ggplot语法
library(patchwork) # 拼图包
library(ggsci) #配色包
data("ToothGrowth")
ToothGrowth$dose=factor(ToothGrowth$dose)

数据介绍

示例数据

ToothGrowth数据集结构如图所示,这是一项评估维生素C对豚鼠牙齿生长的影响的研究数据,len是牙齿长度;supp是两种给药方式,一种是橙汁OJ,另一种是抗坏血酸VC;dose是三种给药水平。对于该数据集我们后续均采用非参数检验方法。

散点箱线图

# 绘制散点箱线图-----------------------------------------
p <- ggplot(ToothGrowth, aes(x=dose, y=len,color=dose)) +
  # 绘制箱线图
  geom_boxplot(aes(fill=dose),
               alpha=0.1)+ # 设置透明度
  # 绘制散点
  geom_jitter()+
  # 设置颜色
  scale_color_manual(values = pal_npg('nrc')(9))+
  scale_fill_manual(values = pal_npg('nrc')(9))+
  # 设置主题
  theme_bw()+
  # 去除网格线
  theme(panel.grid = element_blank())
p

plot0

stat_compare_means( )参数解读

  1. method(方法):指定要执行的统计检验。对于非配对检验:
    • "t.test":数据需满足双独立样本,正态性,方差齐性。
    • "wilcox.test":数据需满足双独立样本。(两组数据的默认方法)
    • "kruskal.test":数据需满足三组或更多组独立样本。(>=3组数据的默认方法)
    • "anova":数据需满足三组或更多组独立样本,正态性,方差齐性。
  2. label(标签):默认显示检验方法和p值,p.format只显示p值不显示检验方法,p.signif显示显著性水平符号,ns: p > 0.05、*: p <= 0.05、**: p <= 0.01、***: p <= 0.001、****: p <= 0.0001。
  3. label.x与label.y:标签的坐标位置。
  4. comparisons(比较):一个列表,用于指定要进行比较的组。
  5. order(顺序):一个可选的参数,用于指定应显示比较的顺序。
  6. paired(配对):逻辑值。如果为 TRUE,表示进行比较的组是配对的。
  7. show.legend :逻辑值,是否在图例中显示,建议False。

单因素两水平/多水平比较

# 单因素:两水平/多水平比较----------------------------------------

p1 <- p+stat_compare_means(method = "kruskal.test",
                     label = "p.format",
                     label.x = 0.8, 
                     label.y = 33,
                     show.legend = F)
  
p2 <- p+stat_compare_means(method = "kruskal.test",
                           label = "p.signif",
                           label.x = 0.8, 
                           label.y = 33,
                           show.legend = F)
p1+p2
ggsave('plot1.pdf',width = 7,height = 4.5)

plot1

单因素多水平两两比较

# 单因素:多水平两两比较-------------------------------------------
# 设置要比较的分组
my_comparisons <- list(c("0.5", "1"), c("0.5", "2"),c("1", "2"))
p3 <- p + stat_compare_means(comparisons=my_comparisons,
                       label.y = c(28, 32, 36),
                       method="wilcox.test"
)
p4 <- p + stat_compare_means(comparisons=my_comparisons,
                       label.y = c(28, 32, 36),
                       method="wilcox.test",
                       label="p.signif"
)
p3+p4
ggsave('plot2.pdf',width = 7,height = 4.5)

在这里插入图片描述

双因素

# 双因素----------------------------------------------------------
p5<-ggplot(ToothGrowth,aes(x=dose,y=len,color=supp))+
  geom_boxplot(aes(fill=supp),
               alpha=0.1)+
  geom_jitter(position = position_jitterdodge(jitter.height=0.75, # 散点抖动高度
                                              jitter.width = 0.5, # 散点抖动宽度
                                              dodge.width = 0.75))+ # x轴方向上的闪避量
  scale_color_manual(values = pal_npg('nrc')(9)[c(1,3)])+
  scale_fill_manual(values = pal_npg('nrc')(9)[c(1,3)])+
  theme_bw()+
  theme(panel.grid = element_blank())

p5 <- p5 + stat_compare_means(aes(group = supp),
                        label="p.signif",
                       show.legend = F)
p5
ggsave('plot3.pdf',width = 6,height = 4)

在这里插入图片描述
R进阶绘图–散点箱线图+显著性 / 组间差异比较 / ggpubr包

R进阶绘图–散点图+统计分布图/ggpubr包/aplot包/gridExtra包

合集文章

本期的内容就到这里了,喜欢的小伙伴,欢迎点赞、转发、收藏、在看哦!

关注数据之帆,成为一帆的原始粉丝,和一帆一起进步吧!

参考资料

https://rpkgs.datanovia.com/ggpubr/

https://mp.weixin.qq.com/s/LV2W5aen9QSRcs4wB7MgDA

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐