【发布时间】:2016-04-15 10:47:37
【问题描述】:
我正在尝试使用 facet_wrap 制作堆叠条形图,但我希望翻转堆叠变量(“已开发”)的顺序。我重新排序了因子,并尝试了“order=descend()”和“scale_fill_manual”,但似乎没有任何效果。
这是我的代码:
developed=rep(c("developed","available"),6)
agriculture=rep(c(rep("loi",2), rep("dryland",2), rep("agroforestry",2)),2)
acres=c(7435,24254,10609,120500,10651,75606,6037,9910,4390,895,9747,46893)
islands=c(rep("All islands",6), rep("Oahu",6))
all_is2=data.frame(developed, agriculture, acres, islands)
head(all_is2)
developed agriculture acres island
1 developed loi 7435 All islands
2 available loi 24254 All islands
3 developed dryland 10609 All islands
4 available dryland 120500 All islands
5 developed agroforestry 10651 All islands
6 available agroforestry 75606 All islands
“农业”和“发达”的因素水平变化
all_is2$agriculture=factor(all_is2$agriculture,levels=c("loi","dryland","agroforestry"))
all_is2$developed=factor(all_is2$developed,levels=c("developed","available"))
levels(all_is2$developed)
[1] "developed" "available"
然后,绘图:
ggplot(all_is2,aes(x=agriculture,y=acres,fill=developed))+
geom_bar(position="stack", stat="identity")+
facet_wrap(~islands)+ scale_fill_grey(start=0.8, end=0.2, name="")+ xlab("")+ylab("Acres")+theme_bw()+ scale_y_continuous(labels=comma)
我希望在条形的“可用”部分(黑色)之上的灰色条形“已开发”部分。并且图例也应该与条形图的顺序相匹配。
此外,是否可以将顶部的 facet_wrap“所有岛屿”和“欧胡岛”移动到“loi”“旱地”和“农林业”下的图表底部。谢谢你的帮助!!
【问题讨论】:
-
你需要颠倒你的因素的顺序。 (
levels=c("available","developed"))。并且方面总是在图的顶部或之外,如果你想要在 grid.arrange 方法下方的标签可能是要走的路。 -
我已经尝试过了,将因子保留在 levels=c("available"," Developed"),但我得到的是可用的堆叠在顶部的灰色和开发的堆叠在底部黑色的。 (imgur.com/ne3iNhk)
-
几乎看起来像一个错误。
-
在方面,感谢@Jota:您可以使用
facet_wrap(~islands , switch = "x") -
我认为this issue on ggplot github 是相关的。
标签: r ggplot2 stacked-chart facet-wrap