我想使用ggplot2绘制堆积面积图,但发现结果与本书不同(R Graphics Cookbook图4-22)library(gcookbook)
library(plyr)
ggplot(uspopage, aes(x=Year, y=Thousands, fill=AgeGroup, order=desc(AgeGroup))) + geom_area(colour="black", size=.2, alpha=.4) + scale_fill_brewer(palette="Blues")
不能颠倒堆叠顺序(在书中,“> 64”应在底部)。这个过程有问题吗?
最佳答案
即席方法是对数据重新排序。代替
AgeGroup
<5
5-14
15-24
你要
AgeGroup
>64
55-64
45-54
因此,您可以将最后一个元素放在第一位,第二个最后一个元素放在第二位,...使用时会发生类似于
c("A", "B", "C", "D")[4:1]
的情况swap <- uspopage[nrow(uspopage):1,]
ggplot(swap, aes(x=Year, y=Thousands, fill=AgeGroup, order=desc(AgeGroup))) +
geom_area(colour="black", size=.2, alpha=.4) + scale_fill_brewer(palette="Blues")
2016-06-02:我在评论后提出了一些解释。