按组将ggplot facet_wrap重新排序为列

时间:2019-07-19 14:30:03

标签: r ggplot2 facet-wrap

我正在尝试使用ggplot facet_wrap按个人(6x3)图绘制聚类。但是,子图的顺序不是我想要的。

我的数据和当前情节:

df = data.frame(ID = rep(c(1:18),each=3), cluster = rep(c(1:6),each=9), 
            val = runif(54,5,8), date = rep(c(1:3),18))

ggplot(df, aes(date, val,)) + geom_bar(stat = 'identity') + 
            facet_wrap( ~ cluster*ID, nrow=3,ncol=6) + theme_bw()

enter image description here

但是,正如您所看到的,这些图按ID的顺序排列。我想要的是将每一列都作为群集(即,列1包含ID为1,2,3的群集1;列2包含ID为4,5,6等的群集2)。

反正有这样做吗?请帮忙!谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您只需要用dir来指示方向

ggplot(df, aes(date, val,)) + geom_bar(stat = 'identity') +
            facet_wrap(~cluster * ID, nrow = 3, ncol = 6, dir = "v") + theme_bw()

enter image description here