我只是尝试使用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)只有两组。
显然我想在剧情上每个栏只有一个错误栏。如果有人可以在这里暗示我可能做错了什么,我会非常感激。
答案 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
如果您只查找四个条形图,则您的数据集应该只有4行。