如何使用ggplot2反转堆积区域图中的堆叠顺序

时间:2016-05-31 15:42:01

标签: r ggplot2

enter image description here我想用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"应位于底部)。这个过程有什么问题吗?

1 个答案:

答案 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:我在评论请求后给出了一些解释。