2014-04-22 1 views
1

막대 하나의 오차 막대를 막대 그래프의 각 막대 위에 표시하고 막대 내의 각 구역에는 막대 그래프를 그려 넣지 않고 계속 시도해 왔습니다. 각 섹션에 대한 모든 오류 막대를 그릴 수는 있지만 단일 오류 막대를 그리는 솔루션을 찾지 못했습니다. 여기 누적 막대 그림의 단일 오류 막대 ggplot

여기
Sp Type Or  Rate  se 

1 H Dis  Bottom 14.5454545 8.0403025 
2 H Dis  Top  2.7272727 1.9403407 
3 H Dis  WP  0.9090909 0.9090909 
4 H He  Bottom 5.4545455 1.4845392 
5 H He  Top  15.4545455 5.0797135 
6 H He  WP  0.0000000 0.0000000 
7 H HeDis Bottom 9.0909091 3.8330638 
8 H HeDis Top  8.1818182 4.1659779 
9 H HeDis WP  3.6363636 2.0100756 
10 N Dis  Bottom 19.0909091 8.9329715 
11 N Dis  Top  0.0000000 0.0000000 
12 N Dis  WP  0.0000000 0.0000000 
13 N He  Bottom 22.7272727 7.0743137 
14 N He  Top  0.0000000 0.0000000 
15 N He  WP  3.6363636 2.7773186 
16 N HeDis Bottom 14.5454545 5.2835139 
17 N HeDis Top  10.0000000 4.3808583 
18 N HeDis WP  0.0000000 0.0000000 

DF 데이터 프레임하는 바 내의 각 섹션에 대한 오차 막대와 누적 막대 그래프 (각 오차 막대의 위치를 ​​그려 내 스크립트가 올바르지 않습니다 그러나 이것은 문제가되지 않습니다 이 아니기 때문에 내가) 원하는 : 이것은 계정을 고려하지 않고 각 줄의 맨 위에 하나의 전체 오차 막대를 그릴 어떻게 각 막대 내에서 모든 섹션의 오차 막대를 그립니다

dodge<- position_dodge(width = 0.65) 
cols <- c(Top="darkgrey",Bottom="lightgrey", Well_plate="white") 
Stacked_plot_bis<-ggplot(df, 
aes(x=factor(Type),y=Rate,fill=factor(Or))) + 
geom_bar(aes(width=.65), stat="identity",colour="black")+ 
geom_errorbar(aes(ymin=Rate-se,ymax=Rate+se), position="dodge",colour="black", 
width=.65)+ 
scale_fill_manual(values = cols)+ 
facet_grid(. ~ Sp) 

각 유형에 대한 전체 값만?

도움이 필요하시면 대단히 감사하겠습니다.

답변

2

mean(se)을 계산하는 더미 데이터 세트 (data.table 패키지로 만들었습니다)를 만들 수 있습니다 (최선의 방법이라고 생각하지 않지만). 다음과 같이 플롯합니다. 오차 막대는 그래서 당신은) 더 나은

dodge<- position_dodge(width = 0.65) 
cols <- c(Top="darkgrey",Bottom="lightgrey", Well_plate="white") 
library(data.table) 
Dummy <- data.table(df)[, list(Rate = sum(Rate), se = mean(se), Or = "WP"), by = c("Sp", "Type")] 
ggplot(df,aes(x=factor(Type),y=Rate,fill=factor(Or))) + 
    geom_bar(aes(width=.65), stat="identity",colour="black")+ 
    geom_errorbar(data = Dummy, aes(ymax = Rate +se, ymin= Rate -se), position="dodge", colour="red", width=.65)+ 
    scale_fill_manual(values = cols)+ 
    facet_grid(. ~ Sp) 

enter image description here

+0

많은 감사 다윗을 볼 수 있었다. 오류 막대를 그리기 위해 다른 데이터 프레임의 데이터를 사용하려했지만 항상 오류 메시지가 표시되었습니다. 귀하의 대답에 감사 드리며, 특히 data.table을 사용하여 스크립트를 수정했으며 효과가있었습니다. – GQU