2015-08-14 10 views
5

Я пытаюсь построить стандартную планку погрешностей по многоуровневой гистограмме данных, которые очень похожи на следующее:ggplot положение errorbar проблема многофакторной

mth<-rep(c("June","July","August"),length.out=15) 
yr<-rep(c("1999","2000","2005","2009","2010"),each=3) 
X<-rnorm(15,mean=200,sd=100) 
lng<-rep(c(30,31,31),length.out=15) 
vrnc<-rnorm(15,mean=740,sd=300) 
df<-data.frame(mth,yr,vrnc,lng,X) 
dfi<-dim(df)[1] 
for(i in 1:dfi){ 
df$X.se[i]<-sqrt(df$vrnc[i]/df$lng[i]) 
} 

Я попытался размещением брусков ошибок, используя stat_summary, описанный в this thread. Мой код с stat_summary выглядит следующим образом:

ggplot(df,aes(x=yr,y=X,fill=mth))+ 
    stat_summary(fun.y=mean, geom="bar",position=position_dodge(1)) + 
    stat_summary(fun.ymin=min,fun.ymax=max,geom="errorbar", 
     color="grey40",position=position_dodge(1), width=.2) + 
    geom_errorbar(data=df,aes(ymin=X-X.se,ymax=X+X.se,position="dodge",width=.2))+ 
    scale_fill_discrete("mth") 

Я также попытался использовать этот код:

ggplot(df,aes(x=yr,y=X,fill=mth))+ 
    geom_bar(stat="identity",position="dodge")+ 
    geom_errorbar(data=df,aes(ymin=X-X.se,ymax=X+X.se,position="dodge",width=.2)) 

но результат всегда выходит с погрешностями все в середине каждого года.

enter image description here

Я хотел бы знать, что я делаю неправильно. каждая строка ошибок должна быть в верхней части месяца/года, указанного в данных.

ответ

6

должен был сделать это недавно. что-то вроде:

ggplot(df,aes(x=yr,y=X,fill=mth))+ 
    geom_bar(stat="identity", position = position_dodge()) + 
    geom_errorbar(aes(ymin=X-X.se, ymax=X+X.se), position = position_dodge(.9), width=.2) 
+2

Просто немного дальнейших объяснений: главная причина, по которой errorbars не уклоняясь, что 'position' должно быть указано * вне * из' ИСЗ() 'отображение. –

+0

@RichAtMango: Бинго! Огромное спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^