tidytext
Finished, widely taught, and shipping roxygen fixes.
A side-by-side editorial comparison of ggspatial and patchwork — release velocity, themes, recent moves, and the top alternatives to consider.
ggspatial finishes its move off raster and onto terra
ggspatial puts spatial data into ggplot2. Its recent history is a single multi-year migration: terra support arrived alongside raster in 1.1.6, and by 1.1.10 terra is the default in the bundled data loaders while raster is described as deprecated. Everything between those two releases is ggplot2 compatibility patching.
patchwork stopped being a ggplot composer and became a page composer.
patchwork assembles plots into compositions with arithmetic operators, and the 1.x line has steadily hardened that grammar: guide and axis collection, free() to exempt a plot from alignment, inset_element() for overlays, and list-like behaviour so lapply() and length() work on a patchwork. Version 1.3.0 added native gt table support. The two releases since are a load-time warning fix and a compatibility pass for the next ggplot2 release.
ggspatial puts spatial data into ggplot2. Its recent history is a single multi-year migration: terra support arrived alongside raster in 1.1.6, and by 1.1.10 terra is the default in the bundled data loaders while raster is described as deprecated. Everything between those two releases is ggplot2 compatibility patching.
The package tracks the R spatial stack's own generational shift rather than setting direction itself — sf and stars support, then terra, then preparing S3 methods for the next ggplot2. Feature work is rare; the value it delivers is staying current with the layers underneath it.
The likely next step is completing the ggplot2 S3 method preparation that 1.1.10 started, with raster support eventually dropped rather than maintained in parallel.
patchwork assembles plots into compositions with arithmetic operators, and the 1.x line has steadily hardened that grammar: guide and axis collection, free() to exempt a plot from alignment, inset_element() for overlays, and list-like behaviour so lapply() and length() work on a patchwork. Version 1.3.0 added native gt table support. The two releases since are a load-time warning fix and a compatibility pass for the next ggplot2 release.
The centre of gravity is shifting from alignment mechanics to composition scope. Early releases were almost entirely bug fixes against grid and ggplot2 internals — strip placement, fixed aspect ratios, guide merging. Recent ones add object types and escape hatches instead. Between feature cycles the package is in maintenance defined by ggplot2's release calendar, which is what 1.3.1 is in its entirety.
Expect wrap_table() to grow beyond gt to other table objects, and expect the next substantive release to be triggered by a ggplot2 internals change rather than by a patchwork roadmap.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either ggspatial or patchwork.
Finished, widely taught, and shipping roxygen fixes.
Text features finally stay sparse all the way to the model.
The package that made calibration a step instead of an afterthought.
workflowsets keeps widening what counts as a model worth comparing.
The tidymodels pipeline grew a third stage, and it happens after the model runs.
Posit's MLOps package went quiet for two years, then came back to keep up with recipes.
See all ggspatial alternatives → · See all patchwork alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — ggplot2, maintenance — within Analytics. ggspatial and patchwork are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. ggspatial and patchwork are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top ggspatial alternatives in Analytics are ranked by recent ship velocity. Browse the "ggspatial alternatives" section above for the current picks, or visit /alternatives/ggspatial for the full list with editorial commentary on each.
Top patchwork alternatives in Analytics are ranked by recent ship velocity. Browse the "patchwork alternatives" section above for the current picks, or visit /alternatives/patchwork for the full list with editorial commentary on each.