ggragged extends the faceting system in
ggplot2 to ragged grids—a hybrid
layout between facet_wrap()
and facet_grid()
.
facet_ragged_rows()
groups panels into rows that can vary in length.facet_ragged_cols()
groups panels into columns that can vary in length.
Install the current release from CRAN:
install.packages("ggragged")
Or the development version from GitHub:
remotes::install_github("mikmart/ggragged")
Ragged grids can be used to clearly separate nested hierarchies in the panel layout:
library(ggplot2)
library(ggragged)
p <- ggplot(Indometh, aes(time, conc)) + geom_line()
# Panels for each subject, with cohorts on separate rows
p + facet_ragged_rows(
vars(Cohort = 1 + Subject %in% 3:6),
vars(Subject = as.character(Subject)),
labeller = label_both
)
# Panels for each subject, with cohorts in separate columns
p + facet_ragged_cols(
vars(Subject = as.character(Subject)),
vars(Cohort = 1 + Subject %in% 3:6),
labeller = label_both
)