The goal of patchwork
is to make it ridiculously simple
to combine separate ggplots into the same graphic. As such it tries to
solve the same problem as gridExtra::grid.arrange()
and
cowplot::plot_grid
but using an API that incites
exploration and iteration, and scales to arbitrarily complex
layouts.
You can install patchwork from CRAN using
install.packages('patchwork')
. Alternatively you can grab
the development version from github using devtools:
# install.packages("devtools")
::install_github("thomasp85/patchwork") devtools
The usage of patchwork
is simple: just add plots
together!
library(ggplot2)
library(patchwork)
<- ggplot(mtcars) + geom_point(aes(mpg, disp))
p1 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p2
+ p2 p1
patchwork provides rich support for arbitrarily complex layouts with full alignment. As an example, check out this very readable code for nesting three plots on top of a third:
<- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p3 <- ggplot(mtcars) + geom_bar(aes(carb))
p4
| p2 | p3) /
(p1 p4
patchwork can do so much more. Check out the guides for learning everything there is to know about all the different features:
Please note that the patchwork project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.