研究者常常要比较两组数据是否有统计学差异,并且要将这种差异在图形上通过线和注释标注出来。
ggplot2包是一个很好的可视化包,ggsignif包是ggplot2包的一个扩展包。
今天来学习怎么在ggplot2包绘制的图形上添加显着性差异注释。
1. 安装R包install.packages("ggplot2") # 安装包install.packages("ggsignif") # 安装包library(ggplot2) # 加载包library(ggsignif) # 安装包
2. 加载数据
使用iris数据集。
iris也称鸢尾花卉数据集,包含150个数据样本,分为3类(setosa、versicolour、virginica),每类50个数据,每个数据包含4个属性(花萼长度、花萼宽度、花瓣长度、花瓣宽度)。data(iris) # 加载数据集View(iris) # 预览数据集
3. 绘制箱型图
3.1 两组比较
比较数据集中versicolor组和virginica组的Sepal.Length(花萼长度)是否有统计学差异。ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + geom_signif(comparisons = list(c("versicolor", "virginica")))
如上图所示,可以看到两组是有统计学差异的,但是图中的P值使用的是科学计数法,其实还可以使用*或注释来表示。
通过添加参数map_signif_level=TRUE,可以将统计学差异表示为*符号。ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + geom_signif(comparisons = list(c("versicolor", "virginica")), map_signif_level=TRUE)
3.2 多组两两比较
还是使用上面的数据集数据。
我们在图上添加3组数据两两比较的统计学差异P值。ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + geom_signif(comparisons = list(c("versicolor",