按年份订购facet_wrap图的更简单方法

时间:2018-11-11 16:57:41

标签: r ggplot2 facet-wrap

我有20年的重量数据,我想用ggplot2制作10行2列facet_wrap图。问题是我想以这样的方式重新排列构面,以使我在左栏中有前十年,在右栏中有后十年。

我可以按照其他帖子中的建议手动重新排列级别,但这很痛苦。此外,如果我想做相同的事情但使用不同的年份,我将不得不再次重新排列级别。

有没有更简单的方法?这是一个说明我在说什么的示例:

sub.data$year = factor(sub.data$year, 
                       levels = c(2000,2005,2001,2006,2002,2007,2003,2008,2004,2009...))

ggplot(data = sub.data, aes(x = sub.data$weight)) +
  geom_histogram() + facet_wrap(~ year, ncol = 2)

谢谢

1 个答案:

答案 0 :(得分:2)

我认为您需要dir = "v"

library(tidyverse)

df <- data.frame(year = rep(2001:2020, 5), x = runif(100), y = runif(100))

ggplot(df, aes(x, y)) +
  geom_point() +
  facet_wrap(~year, ncol = 2, dir = "v")

reprex package(v0.2.1)于2018-11-11创建