1

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

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
4

1 回答 1

3

你得到错误条的奇怪位置,因为你df$value在位置设置中使用(它使位置相同)。您应该将位置设置aes()value-sd(不带df$),并且可以设置yminymax内部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()

在此处输入图像描述

于 2013-04-21T18:53:57.983 回答