2015-10-07 65 views
0

我開始用R,並試圖繪製堆疊條形圖,我的數據是這樣的:[R堆積柱狀圖中不增加在酒吧的值

Groups AxisX AxisY 
1  B  1 35476 
2  B  2 31394 
3  B  3 39305 
4  B  4 33845 
5  B  5 30295 
6  B  6 25590 
7  B  7 32197 
8  B  8 27901 
9  B  9 35936 
10  B 10 31341 
11  A  1 46468 
12  A  2 42557 
13  A  3 55158 
14  A  4 49182 
15  A  5 44825 
16  A  6 39813 
17  A  7 44900 
18  A  8 40964 
19  A  9 47823 
20  A 10 44373 

據該命令創建:

dfx <- data.frame(Groups=rep(c("B", "A"), each=10), 
       AxisX=rep(c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"),2), 
       AxisY=c(35476,31394,39305,33845,30295,25590,32197,27901,35936,31341,46468,42557,55158,49182,44825,39813,44900,40964,47823,44373)) 

我想用層疊柱狀圖到圖表此數據,但是這是通過遞增欄中的值,例如爲:

B  1 35476 
A  1 46468 

我想有:

46468 | 
35476 | 
0  | 
這樣

,而不是:

81944 | 
35476 | 
0  | 

我使用此代碼圖:

p <- ggplot(data=dfx, aes(x=AxisX, y=AxisY, fill=Groups)) + 
geom_bar(stat="identity") 

如果我添加了position=position_dodge()是確定,但我想讓圖形重疊。

我需要做什麼改變?或者我需要使用其他方法來使圖形符合我的要求?

回答

0

你需要修改你的數據來繪製你想要的圖片。如果您只需要組之間的差異,那麼先計算它們。

require("dplyr") 

ggplot(data=dfx %>% group_by(AxisX) %>% arrange(AxisY) %>% 
     mutate(AxisY_2 = c(AxisY[1], diff(AxisY))), 
     aes(x=AxisX, y=AxisY_2, fill=Groups)) + 
    geom_bar(stat="identity") 

enter image description here

+0

感謝您的回答! –

相關問題