当我使用以下代码生成图形时,误差条位于奇怪的位置。你能告诉我如何让错误条显示在条形图中每个条形图的顶部吗?我知道这是基本的,但我现在已经盯着它好几个小时了。感谢。
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
答案 0 :(得分:2)
你得到错误栏的奇怪位置,因为你在postion的设置中使用df$value
(它使位置相同)。您应该在aes()
中设置value-sd
的位置(不包括df$
),并且可以在ymin
来电中设置ymax
和ggplot()
。
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()