注释ggplot错误栏

时间:2013-06-11 08:31:51

标签: r annotations ggplot2

我过去3天一直在使用R,并且通过研究获得了大部分代码,我已经根据自己的需要进行了调整。它运作得非常好。我希望能够分别用(B,A *,A,A)标记/注释标准错误的错误条。以下是工作代码;

cat<-rep(c("E","F","G","H"),each=12)
var2=rnorm(48,10)*(rep(rpois(4,.2),each=12)/8+1)
ds<-data.frame(cat,var2)
lbls<- c("B","A*","A","A")

stderr <- function(x){sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))}
lowsd <- function(x){return(mean(x)-stderr(x))}
highsd <- function(x){return(mean(x)+stderr(x))}
cols <- c("red", "yellow", "green", "blue")

ggplot(ds,aes(cat,var2, fill=cat))+
ggtitle("Asem beba Dabi")+
xlab("Soil Sample Sites\n\n Fig 1 shows...") + ylab("Mass or Water(mg)") +
# first layer is barplot with means
stat_summary(fun.y=mean, geom="bar", position="dodge", colour="white")+
# second layer overlays 
stat_summary(fun.y=mean, fun.ymin=lowsd, fun.ymax=highsd, geom="errorbar", position="dodge",color = 'blue', size=.5)

这是我正在努力的一点

geom_text(aes(label=lbls), position=position_dodge(width=0.9), vjust=-0.25)

这是一项学校作业,任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

您看不到标签,因为标签与x和y值不在同一数据框中。一种解决方案是使用与stat_summary()相同的geom="text",然后使用vjust=调整位置。

ggplot(ds,aes(cat,var2, fill=cat))+
  stat_summary(fun.y=mean, geom="bar", colour="white")+
  stat_summary(fun.y=mean, fun.ymin=lowsd, fun.ymax=highsd, 
                   geom="errorbar", color = 'blue', size=.5)+
  stat_summary(fun.y=mean,geom="text",label=lbls,vjust=-2)