简体   繁体   English

使用ggplot2在条形图中放置误差线

[英]Placement of error bars in barplot using ggplot2

Hi i am using ggplot version 0.9.3.2 in RStudio and I am trying to make a bar plot with error bars. 嗨,我在RStudio中使用ggplot版本0.9.3.2,我正在尝试使用错误栏制作条形图。 The problem is that the error bars are positioned wrong. 问题是错误栏位置错误。 I need them to go on top of the individual bars. 我需要他们在各个酒吧之上。

I have a data frame like this 我有这样的数据框

   concentration variable     value          sd
1              0     AF_B 0.3567126 0.010391001
2           0.5x     AF_B 0.3355766 0.003480245
3             1x     AF_B 0.3001138 0.009104821
4             5x     AF_B 0.2658911 0.016312390
5            10x     AF_B 0.2115522 0.011056590
6           100x     AF_B 0.2655958 0.015092367
7              0      D_B 0.3567126 0.010391001
8           0.5x      D_B 0.3453078 0.011639252
9             1x      D_B 0.3380180 0.004357810
10            5x      D_B 0.3349004 0.018119644
11           10x      D_B 0.3186451 0.014515436
12          100x      D_B 0.3174700 0.016685932

I have the following code 我有以下代码

    dodge = position_dodge(width=0.9)
    c = ggplot(data=dm, aes(y=value,x=concentration))
    c + geom_bar(position = dodge, 
         stat="identity",
         aes(fill=variable,colour=variable,group=variable, colour="black")) +
    geom_errorbar(aes(ymin=value-sd,ymax=value+sd),
          position=dodge,
          width=0.1,
          size=0.3) +
    ylab("mu_max [h-1]") +
    scale_x_discrete(limits=c("0","0.5x","1x","5x","10x","100x"))

, and gives me this plot, which is clearly ,并给我这个情节,这是显而易见的

http://i.imgur.com/1zwbxMv.png http://i.imgur.com/1zwbxMv.png

You should move the argument fill=variable inside the ggplot() call to ensure that geom_errorbar() also use variable as the dodging variable. 你应该在ggplot()调用中移动参数fill=variable ,以确保geom_errorbar()也使用variable作为闪避变量。

ggplot(data=dm,aes(y=value,x=concentration,fill=variable))+
  geom_bar(position = position_dodge(), 
           stat="identity") +
  geom_errorbar(aes(ymin=value-sd,ymax=value+sd),
                position=dodge,width=0.1,size=0.3)+
  ylab("mu_max [h-1]") +
  scale_x_discrete(limits=c("0","0.5x","1x","5x","10x","100x"))

在此输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM