0

我正在尝试在每个条形图上方制作误差线,但是我将条形图分为三组和 6 个条形图,并且它相对于每个组定位误差线,但是如果每个误差线在每个上方,我想要定位酒吧。这是我的数据的样子:

新数据

Group Session HeartRate StdError  n        sd

1 Novices     one  71.89276 1.821146 29  9.807170
2 Experts     one  66.40705 1.923901 26  9.810008
3 Novices     two  71.38609 1.571261 29  8.011889
4 Experts     two  67.79910 1.788151 26  9.117818
5 Novices   three  71.79759 1.941730 29 10.456534
6 Experts   three  67.04564 1.938620 26  9.885061

这是我的代码:

plot_2 = ggplot(NewData, aes(x=Session, y=HeartRate, fill=Group)) +
     theme_bw() +
     geom_bar(position="dodge",stat="identity")+
     scale_x_discrete(limits=c("one","two","three")) +
     coord_cartesian(ylim = c(50, 80)) +
     geom_errorbar(aes(ymin=HeartRate-StdError,ymax=HeartRate+StdError),position="dodge",width=.25)

这是输出:http: //i.imgur.com/BrLB6Px.png

任何帮助,将不胜感激。谢谢!

好的——我找到了一个解决方案,不确定它是如何工作的或为什么工作,但这是我的新代码:

dodge <- position_dodge(width=0.9)
plot_2 = ggplot(NewData, aes(x=Session, y=HeartRate, fill=Group)) +
         geom_bar(position=dodge)+
         scale_x_discrete(limits=c("one","two","three")) +
         coord_cartesian(ylim = c(50, 80)) +
         geom_errorbar(aes(ymin=HeartRate-StdError,ymax=HeartRate+StdError),position=dodge,width=.25)

这是期望的结果:http: //i.imgur.com/PodCeh5.png

4

1 回答 1

0

很难说出你想看到什么作为输出,但从我收集的信息来看,也许这会做你想要的?

geom_errorbar(aes(ymin=HeartRate,ymax=HeartRate+StdError*2),position="dodge",width=.25)

如果要沿 x 轴移动误差线,我们需要修改 position=dodge。我没有看到太多文档,但您可以尝试类似...

geom_errorbar(aes(ymin=HeartRate-StdError,ymax=HeartRate+StdError),position=group-10,width=.25)

或者

    geom_errorbar(aes(ymin=HeartRate-StdError,ymax=HeartRate+StdError),position=Session-10,width=.25)

或者(很可能?)这个:

        geom_errorbar(aes(ymin=HeartRate-StdError,ymax=HeartRate+StdError),position=x-10,width=.25)
于 2013-10-15T01:43:43.893 回答