Несколько строк в facet_grid

У меня есть набор данных, который выглядит примерно так:

names = tibble(NAME_2=c("Location1","Location2","Location3","Location4"))
dates = tibble(date = seq(as.Date("2015-01-01"), as.Date("2016-12-31"), by="days"))
types = tibble(type = c("comment","post"))
df <- merge(names,dates)
df <- merge(df, types)
zero <- seq(from=0, to=200, by=1)
df$n <- sample(zero, size=nrow(df), replace=TRUE)

Который производит граненый график, подобный этому:

ggplot(data = df, aes(x = date, y = n)) +
  geom_line() +
  facet_grid(type ~ NAME_2, scale = "free_y")

Фасетный сюжет

Можно ли получить поведение как ncol=2 в facet_wrap чтобы Location3 и Location4 появлялись под Location1 и Location2? На самом деле у меня есть около 12 мест, что делает невозможным печать на одной странице и при этом сохраняет ее разборчивым.

1 ответ

Решение

Вы могли бы использовать grid.arrange, как в:

library(gridExtra)
grid.arrange(
  ggplot(data = df[df$NAME_2 %in% c('Location1','Location2'),], aes(x = date, y = n)) +
    geom_line() + xlab(NULL) +
    facet_grid(type ~ NAME_2, scale = "free_y"),
  ggplot(data = df[df$NAME_2 %in% c('Location3','Location4'),], aes(x = date, y = n)) +
    geom_line() +
    facet_grid(type ~ NAME_2, scale = "free_y"),
  nrow=2)

Если вы уверены, что диапазоны по оси X расположены сверху вниз, вы можете подавить метки / метки оси X на первом графике.

Другие вопросы по тегам