多个错误栏会在ggplot2中的条形图上添加错误列

时间:2014-09-06 13:33:39

标签: r ggplot2 bar-chart

我只是尝试使用ggplot将错误栏添加到并排条形图中。我认为数据排列正确如下。我想描绘近交和远交之间繁殖力的差异 来自具有(+ SS)和不具有(-SS)性选择的群体的群体。

       inbreeding  SS       Fecundity      se
1      Inbred      +SS      5.60      0.8596205 
2      Inbred      +SS      7.40      1.1639316 
3      Inbred      +SS      6.25      1.2457824 
4      Inbred      +SS      1.40      0.1854050 
5     Outbred      +SS      7.70      1.2377824 
6     Outbred      +SS      6.30      0.6613384 
7     Outbred      +SS      2.35      1.0137865 
8     Outbred      +SS      8.27      1.2775966 
9      Inbred      -SS      9.15      1.7595977 
10     Inbred      -SS     12.50      1.7464249 
11     Inbred      -SS     10.95      1.9063260 
12     Inbred      -SS      3.65      1.2036676 
13    Outbred      -SS      7.65      1.5564382 
14    Outbred      -SS      9.10      1.5250539 
15    Outbred      -SS      5.75      1.3315503
16    Outbred      -SS      3.65      0.9821432

我用来制作剧情的代码是

ggplot(Inbreeding27Means.ggplot,aes(x=SS,y=Fecundity,fill=inbreeding))+
geom_bar(stat="identity",position=position_dodge())+
geom_errorbar(aes(ymin=Fecundity-se,ymax=Fecundity+se),width=.2,
  position=position_dodge(.9))

通常来自R cookbook网站here

似乎发生的情况是,为每组分组变量(近亲繁殖)添加了每列/条内的多个误差条(我认为)。对不起,我的声誉不够高,不足以添加图片。所以我希望代码清楚。 R cookbook网站上的并排条形图基本上是我的目标,除了我在x轴上的变量(SS)只有两组。

显然我想在剧情上每个栏只有一个错误栏。如果有人可以在这里暗示我可能做错了什么,我会非常感激。

1 个答案:

答案 0 :(得分:2)

与R cookbook中的示例相比,您的数据具有重复的条目,即每个SS和近亲繁殖组合不是唯一的,因为您有四个。第一列中的数值是多少?它是否像第二个治疗变量,即你期望有16个酒吧?然后你会想要找到这样的东西:

data$population = c(1:16)
data$treatment = paste(data$population,data$inbreeding)

g=ggplot(data,aes(x=as.factor(population),y=Fecundity,fill=as.factor(SS),group=inbreeding))
g=g+geom_bar(stat="identity",position=position_dodge())
g=g+geom_errorbar(aes(ymin=Fecundity-se,ymax=Fecundity+se),width=.2,position=position_dodge(.9))
g=g+facet_grid(.~inbreeding,scales="free_x")
g

16 bars with error bars

如果您只查找四个条形图,则您的数据集应该只有4行。