2014-04-22 80 views
1

我一直在嘗試沒有任何成功,在每個單獨的欄頂部繪製帶單個錯誤欄的堆積條形圖,而不是針對條形內的每個部分。我可以設法爲每個部分繪製所有錯誤欄,但沒有找到解決方案來繪製單個錯誤欄。堆積條形圖上的單個錯誤欄ggplot

這裏是DF

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 

這裏的數據幀是我的腳本來繪製酒吧內的每一個部分誤差條堆疊條形圖(每個錯誤欄的位置是不正確的,但是這並不重要因爲這不是我想要的):

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

您可以創建一個Dummy數據集(我使用data.table包),它將計算出mean(se)(儘管我認爲這不是最佳做法),並將其繪製爲以下內容(我已將其顏色改爲誤差線,所以你可以看到他們更好)

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