无论是实验数据整理,还是流调数据分析,组间数据的比较都是我们最常用到的。
箱式图是个很不错的展示组间差异的方式~
箱式图,是指—种描述数据分布的统计图,是表述最小值、第一四分位数、中位数、第三四分位数与最大值的一种图形方法。它也可以粗略地看出数据是否具有对称性,分布的分散程度等信息,特别是可用于对几个样本的比较。在箱图中,最上方和最下方的线段分别表示数据的最大值和最小值,其中箱图的上方和下方的线段分别表示第三四分位数和第一四分位数,箱图中间的粗线段表示数据的中位数。
百度百科
如果我们能在箱式图的基础上,再添加显著性差异那就好看啦~
可是又该怎么实现呢?今天我们用R语言来试试看~
首先,我们用excel表整理我们的实验数据。这里我模拟了2组(A组和B组)各10个样本的观测值。示例数据如下:
在execl表格中圈住想要读取的数据部分,选择“复制”,在R中执行命令read.table("clipboard")就可以直接读取我们所选中的数据啦~
data<-read.table("clipboard")
载入分析和画图所需工具包
#载入数据分析和画图所需要的两个数据包#如为首次使用,需先安装#install.packages("ggplot2")#install.packages("ggsignif")library(ggplot2)library(ggsignif)
我们先绘制一张没有显著性标记的图看看
p1<-ggplot(data,aes(data[,1],data[,2],fill=data[,1]))+geom_boxplot()p1
此时,虽然我们可以看出来B组的样本数值高于A组,但是这种差异是否显著呢?
让我们再绘制一张有组间比较标记的图来看看
#列出需要比较的Group。如需要比较A和B两个组
compaired <-list(c("A","B"))
#如数据为多组比较。举例 A、B、C三个组两两比较
compaired <-list(c("A","B"),c("A","C"),c("B","C"))
p2<-ggplot(data,aes(data[,1],data[,2],fill=data[,1]))+geom_boxplot()+
geom_signif(comparisons = compaired,test=t.test,map_signif_level = T)
p2
可以看到,A组和B组通过t.test检验,呈显著性差异("***"=0.001, "**"=0.01, "*"=0.05)
如此处我们希望展现的数值,而不是用*号表示,我们可以将参数map_signif_level 调整为F
p3<-ggplot(data,aes(data[,1],data[,2],fill=data[,1]))+geom_boxplot()+geom_signif(comparisons = compaired,test=t.test,map_signif_level = F)p3
如果喜欢小提琴图,也可以用小提琴+箱式图的方式展现
p4<-ggplot(data,aes(data[,1],data[,2],fill=data[,1]))+geom_violin()+geom_boxplot(width=0.2)+geom_signif(comparisons = compaired,test=t.test,map_signif_level = F)p4
如需继续美化,可参照ggplot2的各项参数调整,或copy至画图软件再继续修饰
联系客服