Skip to content

thomasp85/patchwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b4c1604 · Mar 25, 2025
Jan 5, 2024
Mar 25, 2025
Sep 10, 2024
Nov 14, 2019
Sep 16, 2024
Sep 13, 2024
Sep 10, 2024
Aug 19, 2022
Nov 21, 2019
Nov 14, 2019
Mar 25, 2025
Nov 28, 2017
Mar 25, 2025
Sep 16, 2024
Aug 18, 2022
Aug 14, 2023
Sep 16, 2024
Jun 18, 2020
Sep 16, 2024

Repository files navigation

patchwork

R-CMD-check CRAN_Release_Badge CRAN_Download_Badge Codecov test coverage

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.

Installation

You can install patchwork from CRAN using install.packages('patchwork'). Alternatively you can grab the development version from github using devtools:

# install.packages("devtools")
devtools::install_github("thomasp85/patchwork")

Basic example

The usage of patchwork is simple: just add plots together!

library(ggplot2)
library(patchwork)

p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))

p1 + p2

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:

p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))

(p1 | p2 | p3) /
      p4

Learn more

patchwork can do so much more. Check out the guides for learning everything there is to know about all the different features:

Code of Conduct

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.