更改堆叠区域的顺序

时间:2019-01-24 04:30:29

标签: r ggplot2

我试图以任意方式订购堆叠的geom_area

例如:

investments <- data.frame(Date = c(as.Date('2019-01-01'), as.Date('2019-01-01'),
                                   as.Date('2019-01-01'), as.Date('2019-01-02'),
                                   as.Date('2019-01-02'), as.Date('2019-01-02')),
                          Amount = c(100, 200, 150, 120, 200, 130),
                          InvestType = c("Shares", "Cash", "Bonds", 
                                         "Shares", "Cash", "Bonds"))

ggplot()+
  geom_area(data = investments,
            aes(x = Date, y = Amount, fill = InvestType))

Investments

这给出了上面的图表,其中堆叠区域的顺序为“股票,现金,债券”。 现在,我希望“现金”始终放在最前面。

我尝试使用以下方式对数据框进行排序:

investments  <- arrange(investments, 
                        factor(InvestType, levels = c("Shares", "Bonds", "Cash")))

这按InvestType对数据框进行了排序,但未更改堆叠区域的顺序。

1 个答案:

答案 0 :(得分:0)

@ Z.Lin在评论中给出了正确答案。 我需要堆积面积变量作为一个因素,并以正确的顺序设置级别。 使用转换 investments$InvestType <- factor(investments$InvestType, levels = c("Shares", "Bonds", "Cash")),然后根据评论进行绘制。