我想在这里制作一张类似于这些图表的图表Indicating the statistically significant difference in bar graph
考虑以下示例 库(GGPLOT2)
# my data
my_data <- data.frame(x = c("No","Yes"), y=c(5,25), lower = c(1,10), upper = c(15,50))
我用一些错误栏制作一个条形图,效果很好。
my_data %>% ggplot(aes(x=withdrawal,y=estimate)) +
geom_bar(stat="identity", fill="grey", width=0.5) +
geom_errorbar(ymin=lower, ymax=upper, width = 0.15) +
coord_cartesian(ylim = c(0,70))
好的,现在我想添加一些带p值的注释,这也可以。
my_data %>% ggplot(aes(x=withdrawal,y=estimate)) +
geom_bar(stat="identity", fill="grey", width=0.5) +
geom_errorbar(ymin=lower, ymax=upper, width = 0.15) +
coord_cartesian(ylim = c(0,70)) +
annotate("text",x=1.5,y=65,label="p<0.001")
好吧,但是现在我想添加一条线来表示条形图中统计上的显着差异。
my_data %>% ggplot(aes(x=withdrawal,y=estimate)) +
geom_bar(stat="identity", fill="grey", width=0.5) +
geom_errorbar(ymin=lower, ymax=upper, width = 0.15) +
coord_cartesian(ylim = c(0,70)) +
annotate("text",x=1.5,y=65,label="p<0.001") +
geom_path(x=c(1,1,2,2),y=c(55,60,60,55))
现在我没有工作。那么geom_path有什么问题?我试图用x更改映射。
my_data <- data.frame(x = c(1,2), y=c(5,25), lower = c(1,10), upper = c(15,50))
my_data %>% ggplot(aes(x=withdrawal,y=estimate)) +
geom_bar(stat="identity", fill="grey", width=0.5) +
geom_errorbar(ymin=lower, ymax=upper, width = 0.15) +
coord_cartesian(ylim = c(0,70)) +
annotate("text",x=1.5,y=65,label="p<0.001") +
geom_path(x=c(1,1,2,2),y=c(55,60,60,55))
仍然无法正常工作。我该怎么做才能让geom_path工作?
答案 0 :(得分:1)
在尝试之后,我提出了以下解决方案。
my_data %>% ggplot(aes(x=withdrawal,y=estimate)) +
geom_bar(stat="identity", fill="grey", width=0.5) +
geom_errorbar(ymin=lower, ymax=upper, width = 0.15) +
coord_cartesian(ylim = c(0,70)) +
annotate("text",x=1.5,y=65,label="p<0.01")
geom_path(data = data.frame(x=c(1,1,2,2),y=c(58,60,60,58)), aes(x=x,y=y))
这有点凌乱,可能有更好的答案。
答案 1 :(得分:0)
上一篇提出相同问题的帖子可能很有用:Indicating the statistically significant difference in bar graph USING R
ggsignif包是另一种选择。 例如,请参阅介绍性小插图:https://cran.r-project.org/web/packages/ggsignif/vignettes/intro.html