2016-08-04 2 views
0

문제가 있습니다. 내 오류 막대 표준 오류 (SE)를 사용합니다. 내 오류 막대가 내 술집보다 훨씬 위에 있으며 이미 gminplot 자체에 ymin 및 ymax를 배치했지만 아무런 효과가 없습니다.ggplot2 막대 위에 오차 막대의 위치가 잘못되었습니다.

내 데이터 프레임은 다음과 같습니다 :

ID variable  se 
1 A 14.340695 0.7917790 
2 B 32.506312 0.9092173 
3 C 7.279953 0.0444325 

그리고 나는 다음과 같은 코드를 사용 :

df$variable=as.numeric(as.character(df$variable)) 
limits<-aes(ymin=df$variable - df$se, ymax=df$variable + df$se) 
r<-ggplot(df, aes(x=ID, y=factor(variable), fill=variable)) 
r + geom_bar(position=position_dodge(), stat="identity") + geom_errorbar(limits) 

error_bars의 위치가 너무 이상 끝 왜 모르겠어요 바 자체.

나는 많은 도움을 주셨습니다.

+1

'aes'에서'df $'를 사용하지 마십시오. – Roland

+0

이것은 문제를 해결하지 못 하겠지만 왜 사용하지 않는지에 관심이 있습니다. 나는 ggplot2를 처음 사용합니다. @ 롤란드 plz가 설명해 주시겠습니까? – Momina

+0

플롯을 만들 때'aes '에 지정된 변수는'ggplot' 또는 geom의'data' 인수에 전달 된 data.frame 내에서 평가됩니다. 'df $'를 사용하면 플로팅 코드 외부의 data.frame에서 가져옵니다. 그리고 때때로 ggplot2가 데이터를 재정렬합니다. 결과적으로 ggplot2에 전달 된 data.frame 및 ggplot2 외부에서 계산 된 변수는 더 이상 정렬되지 않습니다. – Roland

답변

0

y를 인자로 설정 한 것으로 보입니다. 제거하면 작동 :

ggplot(df, aes(x=ID, y=variable, fill=variable)) + 
    geom_bar(stat="identity") + 
    geom_errorbar(aes(ymin=variable-se, ymax=variable+se)) 
+0

감사합니다 @ Shirin Glander! 날 풀어 줬어. – Momina