2015-10-07 67 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

感谢您的回答! –

相关问题