条形图上的ggplot错误栏位置错误

时间:2013-04-21 18:20:29

标签: r ggplot2

当我使用以下代码生成图形时,误差条位于奇怪的位置。你能告诉我如何让错误条显示在条形图中每个条形图的顶部吗?我知道这是基本的,但我现在已经盯着它好几个小时了。感谢。

library(ggplot2)
df <- data.frame(gender=c("male","male","female","female"),
             trait=c("height","weight","height","weight"),
             value=c(70,150,65,120),
             sd = c(5,15,4,10))

gg <- ggplot(df,aes(x=trait,y=value,fill=trait))
gg <- gg+ geom_bar(stat="identity",position=position_dodge())
gg <- gg + facet_wrap(~ gender, ncol=1)

limits <- aes(ymax=df$value+df$sd, ymin=df$value-df$sd)                                                                                               
gg <- gg + geom_errorbar(limits)
#gg <- gg + geom_pointrange(limits)                                                                                                                                                                       
gg

1 个答案:

答案 0 :(得分:2)

你得到错误栏的奇怪位置,因为你在postion的设置中使用df$value(它使位置相同)。您应该在aes()中设置value-sd的位置(不包括df$),并且可以在ymin来电中设置ymaxggplot()

ggplot(df,aes(x=trait,y=value,fill=trait,ymin=value-sd,ymax=value+sd))+
       geom_bar(stat="identity",position=position_dodge())+
       facet_wrap(~ gender, ncol=1)+
       geom_errorbar()

enter image description here