我想用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"应位于底部)。这个过程有什么问题吗?
答案 0 :(得分:2)
一种特殊的方法是重新排序数据。而不是
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:我在评论请求后给出了一些解释。