首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用R表示条形图中统计意义上的差异

使用R表示条形图中统计意义上的差异
EN

Stack Overflow用户
提问于 2013-02-19 21:00:18
回答 3查看 45.2K关注 0票数 18

这是最初在这里提出的问题的重复:Indicating the statistically significant difference in bar graph,但要求使用R而不是python。

我的问题很简单。我想在R中生成条形图,如果可能的话,使用ggplot2,并显示不同条形图之间的显著差异,例如,生成以下内容。我已经找过了,但找不到另一个问题,问的是完全相同的事情。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-19 21:18:53

您可以使用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")

票数 18
EN

Stack Overflow用户

发布于 2017-04-05 20:39:09

我知道这是一个古老的问题,Didzis Elferts的答案已经为这个问题提供了一种解决方案。但我最近创建了一个ggplot扩展,它简化了添加重要性条的整个过程:ggsignif

无需繁琐地将geom_pathannotate添加到绘图中,只需添加单个图层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

票数 19
EN

Stack Overflow用户

发布于 2016-10-18 04:48:18

我使用了上面建议的方法,但我发现annotate函数比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))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14958159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档