我正在使用ggplot创建一个堆叠条形图,如下所示:
plot_df <- df[!is.na(df$levels), ]
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")
这给了我类似的东西:
我如何颠倒堆叠钢筋的顺序,使1层位于底部,5层位于每个钢筋的顶部?
我已经看到了很多关于这方面的问题(例如How to control ordering of stacked bar chart using identity on ggplot2),常见的解决方案似乎是按照这个级别对数据帧重新排序,因为ggplot使用的是确定顺序
所以我try 使用dplyr重新排序:
plot_df <- df[!is.na(df$levels), ] %>% arrange(desc(levels))
然而,故事情节是一样的.我是按升序排列还是按降序排列似乎也没什么区别
以下是一个可复制的示例:
group <- c(1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4)
levels <- c("1","1","1","1","2","2","2","2","3","3","3","3","4","4","4","4","5","5","5","5","1","1","1","1")
plot_df <- data.frame(group, levels)
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")