我试图以任意方式订购堆叠的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 <- arrange(investments,
factor(InvestType, levels = c("Shares", "Bonds", "Cash")))
这按InvestType对数据框进行了排序,但未更改堆叠区域的顺序。
答案 0 :(得分:0)
@ Z.Lin在评论中给出了正确答案。
我需要堆积面积变量作为一个因素,并以正确的顺序设置级别。
使用转换
investments$InvestType <- factor(investments$InvestType, levels = c("Shares", "Bonds", "Cash"))
,然后根据评论进行绘制。