patchwork: The Composer of Plots

The 'ggplot2' package provides a strong API for sequentially building up a plot, but does not concern itself with composition of multiple plots. 'patchwork' is a package that expands the API to allow for arbitrarily complex composition of plots by, among others, providing mathematical operators for combining multiple plots. Other packages that try to address this need (but with a different approach) are 'gridExtra' and 'cowplot'.

Version: 1.2.0
Imports: ggplot2 (≥ 3.0.0), gtable, grid, stats, grDevices, utils, graphics, rlang, cli
Suggests: knitr, rmarkdown, gridGraphics, gridExtra, ragg, testthat (≥ 2.1.0), vdiffr, covr, png
Published: 2024-01-08
Author: Thomas Lin Pedersen ORCID iD [cre, aut]
Maintainer: Thomas Lin Pedersen <thomasp85 at>
License: MIT + file LICENSE
NeedsCompilation: no
Materials: README NEWS
CRAN checks: patchwork results


Reference manual: patchwork.pdf
Vignettes: Getting Started


Package source: patchwork_1.2.0.tar.gz
Windows binaries: r-prerel:, r-release:, r-oldrel:
macOS binaries: r-prerel (arm64): patchwork_1.2.0.tgz, r-release (arm64): patchwork_1.2.0.tgz, r-oldrel (arm64): patchwork_1.2.0.tgz, r-prerel (x86_64): patchwork_1.2.0.tgz, r-release (x86_64): patchwork_1.2.0.tgz
Old sources: patchwork archive

Reverse dependencies:

Reverse depends: immunarch, MixOptim, Nebulosa, ngsReports, pmxTools
Reverse imports: activAnalyzer, AnanseSeurat, aplot, autoReg, bartMan, besthr, BioNERO, bridger, brinton, calmr, CarletonStats, CBNplot, CCPlotR, Cepo, ChemoSpec, chillR, clevRvis, cmcR, cogeqc, ComplexUpset, CRABS, crosshap, CytOpT, dartR, dartR.base, dartR.captive, dartR.popgen, dataquieR, dearseq, decisionSupport, decontX, DESpace, dgpsi, dynamic, dynamite, dyngen, ecic, EpiForsk, EpiNow2, ern, escape, eudract, EvoPhylo, extraChIPs, fairmodels, fdaPOIFD, figpatch, FindIT2, fitbitViz, foqat, forestecology, funcharts, funkyheatmap, ggbrain, ggcharts, ggheatmap, ggkegg, gglm, ggpicrust2, ggquickeda, ggseqplot, ggstats, ggstatsplot, ggsurvfit, gosset, grafify, grandR, GRaNIE, gratia, greatR, GUIDEseq, hahmmr, HaploCatcher, HGC, hierarchicalSets, hockeystick, HYPEtools, idopNetwork, iglu, infer, inferCSN, insane, insurancerating, interpretCI, intradayModel, iNZightRegression, iNZightTS, itsdm, ivDiag, jskm, lactater, lares, LMD, LongDat, loon.ggplot, LSTS, maraca, mastR, mcp, memes, messi, metabolic, metan, MF.beta4, mFD, microbiomeMarker, MicrobiotaProcess, miloR, mispitools, mlr3shiny,, msmtools, multiplestressR, multiWGCNA, NanoMethViz, NetFACS, NetworkExtinction, numbat, orthogene, pmartR, powerly, ppseq, PRECAST, psycModel, qacBase, qmtools, radiant.basics,, radiant.model, radiant.multivariate, RARfreq, rcssci, redist, rhierbaps, rnaCrosslinkOO, RNAseqQC, Robyn, rprimer, scBubbletree, sccomp, scCustomize, scGate, scistreer, ScreenR, scRNAseqApp, scRNAstat, SeaVal, SEIRfansy, Seurat, shapviz, shinySbm, Signac, signifinder, SimplyAgree, smallsets, smplot2, spatialRF, Spectran, SpliceWiz, splithalf, spotoroo, standR, starvz, suddengains, survex, synlet, Sysrecon, TidyDensity, tidyHeatmap, tidysdm, tinyarray, toxSummary, treefit, treekoR, tRigon, triplot, triptych, uniswappeR, UpSetVP, visxhclust, Voyager, whippr, wordpredictor
Reverse suggests: AcceptReject, accrualPlot, ale, AlleleShift, appeears, ARUtools, BayesianReasoning, BayesSpace, bayestestR, bbknnR, BindingSiteFinder, broom.helpers, bsitar, camcorder, canaper, Canek, Cepo, chem16S, ChemoSpecUtils, chessboard, clugenr, ClustAssess, ClustIRR, concordexR, coveffectsplot, cowplot, cricketdata, cubble, CytoPipelineGUI, CytoSimplex, decoupleR, doubletrouble, dscore, EWCE, FACT, factR, faux, FAVAR, ferrn, fivethirtyeight, FLORAL, funtimes, geofi, GeomxTools, geslaR, GET, ggblanket, ggbreak, ggdist, ggDoE, ggeasy, ggeffects, ggHoriPlot, ggmice, ggmosaic, ggprism, ggrepel, ggridges, ggtreeExtra, GIFT, growR, gspcr, Guerry, harmony, hermiter, HiContacts, ibawds, iml, industRial, inlabru, ipeaplot, jlmerclusterperm, JSmediation, ldsr, lmls, lterdatasampler, manynet, marginaleffects, marqLevAlg, MASSExtra, MassWateR, matrixset, MedLEA, metaconfoundr, mfp2, mia, miaViz, MiscMetabar, misty, mlr3fairness, mlr3spatiotempcv, mlr3viz, modelbased, moderndive, multifunc, mvinfluence, nestedmodels, NMsim, nn2poly, nullranges, OBIC, oncomsm, pagoo, painbow, palettes, partR2, pctax, performance, plotmm, POMA, portvine, prcbench, precrec, pvLRT, r4ds.tutorials, r5r, regressinator, rempsyc, reporter, reservr, rfishdraw, robber, rTPC, rxode2, scp, SCpubr, see, segregation, sfdep, sigminer, SimNPH, singleCellHaystack, speckle, sSNAPPY, SUMMER, surveyPrev, tfrmt, tidypaleo, tinythemes, tlars, trending, TRexSelector, UCell, unusualprofile, velociraptor, vissE, vroom, weitrix, whitewater, x3ptools


Please use the canonical form to link to this page.