← Back to home
Comparison · Analytics

patchwork vs scales

A side-by-side editorial comparison of patchwork and scales — release velocity, themes, recent moves, and the top alternatives to consider.

Shared themes:ggplot2

patchwork vs scales: at a glance

Featurepatchworkscales
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themesggplot2, composition, tables, layoutr, ggplot2, data-visualization, axis-labels
Last editorial update1h ago6h ago
WebsiteVisit →Visit →

What is patchwork?

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.

Read the full patchwork trajectory →

What is scales?

scales keeps widening what ggplot2 can put on an axis.

scales supplies the breaks, labels and transformations behind ggplot2's axes and legends. Unlike much of the tidyverse infrastructure around it, it still ships genuine feature work each release: native timespan handling in 1.3.0, then custom range-training classes and label_glue() in 1.4.0.

Read the full scales trajectory →

patchwork vs scales: editorial side-by-side

P
patchwork
ANALYTICS
0.0

patchwork stopped being a ggplot composer and became a page composer.

◆ Current state

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.

◆ Where it's heading

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.

◆ Prediction

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.

S
scales
ANALYTICS
0.0

scales keeps widening what ggplot2 can put on an axis.

◆ Current state

scales supplies the breaks, labels and transformations behind ggplot2's axes and legends. Unlike much of the tidyverse infrastructure around it, it still ships genuine feature work each release: native timespan handling in 1.3.0, then custom range-training classes and label_glue() in 1.4.0.

◆ Where it's heading

The arc runs toward extensibility and type coverage. First came built-in support for awkward types like difftime and hms; 1.4.0 inverts that by letting any third-party class participate in range training simply by implementing range() or levels(). Labelling is getting more expressive rather than merely more numerous.

◆ Prediction

Expect continued type-support and labelling work, with extension points that let downstream packages plug in their own classes instead of scales enumerating every one.

Alternatives to patchwork and scales

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 patchwork or scales.

See all patchwork alternatives → · See all scales alternatives →

Recent activity from patchwork and scales

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 11mo agopatchworkFix spurious load-time warnings
  2. 1y agopatchworkCompatibility pass for the next ggplot2 release
  3. 1y agoscalesscales 1.4.0 opens range training to custom classes
  4. 1y agopatchworkgt tables become first-class patchwork objects
  5. 2y agopatchworkAxis collection and free() arrive
  6. 2y agoscalesscales 1.3.0 makes timespans first-class on axes
  7. 3y agopatchworkPatchworks behave like lists; NULL becomes a no-op
  8. 3y agoscalesscales 1.2.1 re-documents to fix .Rd HTML issues
  9. 3y agopatchworkClearer error when plotting space is too small
  10. 4y agoscalesscales 1.2.0 fixes currency sign order and adds scale_cut
  11. 6y agoscalesscales 1.1.1 fixes palette inversion and adds oob_keep()
  12. 6y agoscalesscales 1.1.0 reorganises breaks and labels into a naming scheme

Frequently asked questions

What is the difference between patchwork and scales?

Both compete on the same themes — ggplot2 — within Analytics. patchwork and scales 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.

Is patchwork better than scales?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. patchwork and scales 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.

What are the best alternatives to patchwork?

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.

What are the best alternatives to scales?

Top scales alternatives in Analytics are ranked by recent ship velocity. Browse the "scales alternatives" section above for the current picks, or visit /alternatives/scales-r for the full list with editorial commentary on each.