Credits

ggnext is an independent implementation, but it stands on a great deal of prior art and takes its vocabulary directly from it.

The grammar

The grammar comes from Leland Wilkinson’s The Grammar of Graphics (Springer, 2005) and, above all, from Hadley Wickham’s ggplot2. The API design — aes(), geom_*(), stat_*(), scale_*(), coord_*(), facet_*(), theme(), and composition with + — is preserved deliberately, so that anyone who knows ggplot2 already knows most of this package.

Prior art by area

The extended catalog follows conventions established by these packages. They are credited as design references, not as code ancestry.

AreaReference
Ridgeline / joyplotsggridges
Alluvial and Sankey flowsggalluvial, ggsankey
Network grammarggraph, igraph
Treemapstreemapify
Radar / spider chartsggradar
Streamgraphsggstream
Set intersectionsggupset, UpSetR
Chord diagramscirclize
Parallel coordinatesGGally
Bump chartsggbump
Label and extra geomsggforce, ggrepel, ggalt
Interactivity modelggiraph, plotly
Animation grammargganimate
Plot compositionpatchwork, cowplot
Survival and clinical figuressurvminer, survival, cmprsk, swimplot, consort
Model explanation plotsDALEX, shapviz, iml, yardstick
Colour theoryOkabe & Ito palette; scales, viridis

Algorithms

The layout and statistical algorithms are implemented from their published descriptions.

Used forSource
Tick placementPaul Heckbert, “Nice Numbers for Graph Labels”, Graphics Gems (1990)
Treemap layoutBruls, Huizing & van Wijk, “Squarified Treemaps” (2000)
Force-directed graphsFruchterman & Reingold, “Graph Drawing by Force-Directed Placement” (1991)
Streamgraph baselinesByron & Wattenberg, “Stacked Graphs — Geometry & Aesthetics” (2008)
Survival estimationKaplan & Meier (1958); Aalen (1978), Johansen (1978) for competing risks
Box plot ruleTukey, Exploratory Data Analysis (1977)
Method agreementBland & Altman, “Statistical methods for assessing agreement” (1986)
Convex hullsJarvis march (gift wrapping), 1973
Contrast ratiosWCAG 2.x relative luminance

Implementation

ggnext is built on S7, the R Consortium’s object system, which is the package’s only hard dependency. The rendering, scale, colour and layout code is written from scratch rather than wrapping the packages above; no code is copied from any of them.

If your work depends on one of the packages listed here, please cite it directly — they remain the reference implementations in their areas.