这是一个问题的重复原来在这里问: 表示条形图的统计显著差异 ,但要求对R,而不是蟒蛇。
我的问题很简单。 我想生产中的R barplots,使用GGPLOT2如果可能的话,在不同的酒吧之间显著差异的指示,如产生这样的事情。 我有一个周围搜索,但无法找到另一个问题正好问同样的事情。
这是一个问题的重复原来在这里问: 表示条形图的统计显著差异 ,但要求对R,而不是蟒蛇。
我的问题很简单。 我想生产中的R barplots,使用GGPLOT2如果可能的话,在不同的酒吧之间显著差异的指示,如产生这样的事情。 我有一个周围搜索,但无法找到另一个问题正好问同样的事情。
您可以使用geom_path()
和annotate()
来获得类似的结果。 在这个例子中,你必须自己确定合适的位置。 在geom_path()
提供四个数字让那些小刻度线的连接线。
df<-data.frame(group=c("A","B","C","D"),numb=c(12,24,36,48))
g<-ggplot(df,aes(group,numb))+geom_bar(stat="identity")
g+geom_path(x=c(1,1,2,2),y=c(25,26,26,25))+
geom_path(x=c(2,2,3,3),y=c(37,38,38,37))+
geom_path(x=c(3,3,4,4),y=c(49,50,50,49))+
annotate("text",x=1.5,y=27,label="p=0.012")+
annotate("text",x=2.5,y=39,label="p<0.0001")+
annotate("text",x=3.5,y=51,label="p<0.0001")
我知道这是一个老问题,并通过Didzis Elferts答案已经为这个问题的解决方案。 但我最近建立了一个ggplot扩展,简化了添加的意义棒的全过程: ggsignif
取而代之的繁琐加入geom_path
和annotate
到你的阴谋,你只需要添加一个单层geom_signif
:
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)
包的完整文档,请在CRAN 。
我从上面使用所提出的方法,但我发现用于制备比geom_path函数行注释功能更容易。 只要使用“段”,而不是“文本”。 你必须段打破上去,并定义开始和每个线段结束x和y的值。
例如用于制备3个段:
annotate("segment", x=c(1,1,2),xend=c(1,2,2), y= c(125,130,130), yend=c(130,130,125))