facet_grid 中的多行
Multiple rows in 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")
是否可以在 facet_wrap
中获得类似 ncol=2
的行为,以便 Location3 和 Location4 出现在 Location1 和 Location2 下方?实际上我有大约 12 个位置,这使得无法在一页上打印并仍然保持清晰。
您可以使用 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 轴刻度线 marks/labels。
我有一个大致如下所示的数据集:
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")
是否可以在 facet_wrap
中获得类似 ncol=2
的行为,以便 Location3 和 Location4 出现在 Location1 和 Location2 下方?实际上我有大约 12 个位置,这使得无法在一页上打印并仍然保持清晰。
您可以使用 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 轴刻度线 marks/labels。