箱线图是统计学中较常见的图形之一。这篇文章将讲述如何简单比较两组或多组的平均值,且添加显著性标记。
通常情况根据显著性p值的数值大小,分为四类:
(1)0.01≤p<0.05,*
(2)0.001≤p<0.01,**
(3)0.0001≤p<0.001,***
(4)p<0.0001, ****
接下来会讲述三种添加显著性标记的方法。
方法1-手动添加
1:创建数据,绘制箱线图。
library(ggplot2)
ggplot(iris, aes(x=Species, y=Sepal.Length))+geom_boxplot()
2:手动添加显著性标记。
library(ggplot2)
df2 <- data.frame(a = c(2,2,3,3), b = c(8,8.1,8.1,8))
ggplot(iris, aes(x=Species, y=Sepal.Length))+
geom_boxplot()+
geom_line(data = df2, aes(x = a, y = b)) +
annotate("text", x = 2.5, y = 8.2, label = "***", size = 8)
该方法的缺点是:在手动添加显著性时,需要确认显著性的P值的大小。
方法2-使用ggsignif
1:下载并安装ggsignif包。
install.packages("ggsignif")
2:创建数据,绘制箱线图。
library(ggplot2)
library(ggsignif)
ggplot(iris, aes(x=Species, y=Sepal.Length)) +
geom_boxplot()
3:利用ggsignif R包添加显著性标记。
library(ggplot2)
library(ggsignif)
ggplot(iris, aes(x=Species, y=Sepal.Length)) +
geom_boxplot() +
geom_signif(comparisons = list(c("versicolor", "virginica")),
map_signif_level=TRUE)
方法3-使用ggpubr
1:下载并安装ggpubr包。
install.packages("ggpubr")
2:创建数据,绘制箱线图。
library(ggpubr)
my_comparisons <- list(c("setosa", "versicolor"), c("setosa", "virginica"), c("versicolor", "virginica"))
ggboxplot(iris, x="Species", y="Sepal.Length",color = "Species",palette = "jco", add = "jitter")
3:利用ggpubr R包添加显著性标记。
library(ggpubr)
my_comparisons <- list(c("setosa", "versicolor"), c("setosa", "virginica"), c("versicolor", "virginica"))
ggboxplot(iris, x="Species", y="Sepal.Length",color = "Species",palette = "jco", add = "jitter")+
stat_compare_means(label.y = 9.5)+
stat_compare_means(comparisons=my_comparisons, label.y = c(7.6, 8.4, 8.0), label ="p.signif")
该R包可以增加多个组间的p-value值,还可以增加指定组的组间比较。