ggplot2和带负值的堆叠条形图

给定以下数据集:

部门年度运营收入
1 A 2012 11460
2 B 2012 7431
3 C 2012-8121
4 D 2012 15719
5 E 2012 364
6 A 2011 12211
7 B 2011 6290
8 C 2011-2657
2011年9月14日14657
10 E 2011 1257
11A 2010 12895
12 B 2010 5381
13 C 2010-2408
14 D 2010 11849
15 E 2010 517

如何在ggplot2中完成包含负值的堆叠条形图?以下是我使用的基本图表顺序:

ggplot(收入m,aes(x=年,y=经营收入,填充=分割))+geom\u bar()+
+比例填充酿酒器(type=“seq”,调色板=1)

这将返回一个错误:

警告消息:当ymin!=0

而不是预期的结果-负值显示在X轴下方-它们根本不存在于堆叠条形图中。是否有一种方法可以生成包含所有值(无论是正值还是负值)的图表

更新:从ggplot2.2.0开始,负值的堆叠将自动处理,而无需为正值和负值创建单独的图层

如果我了解您要查找的内容,诀窍是将两个正数据和负数据放在不同的层中,并使用stat=“identity”

dat<-阅读表格(text=“部门年度运营收入
1 A 2012 11460
2 B 2012 7431
3 C 2012-8121
4 D 2012 15719
5 E 2012 364
6 A 2011 12211
7 B 2011 6290
8 C 2011-2657
2011年9月14日14657
10 E 2011 1257
11A 2010 12895
12 B 2010 5381
13 C 2010-2408
14 D 2010 11849
15 E 2010 517“,标题=TRUE,sep=”“,row.names=1)
dat1<-子集(dat,OperatingIncome>=0)
dat2<-子集(dat,操作收益<0)
ggplot()+
geom_bar(数据=数据1,aes(x=年份,y=运营收入,填充=分区),stat=“identity”)+
geom_bar(数据=dat2,aes(x=年份,y=运营收入,填充=分区),stat=“identity”)+
比例填充酿酒器(type=“seq”,调色板=1)

发表评论