ggdist
Visualizations of Distributions and Uncertainty
The grammar of uncertainty visualization, now drawing the uncertainty in its own estimates.
◆Recent moves
- 1y ago
Per-geometry thickness subscales and settable defaults
Subscales complete the sub-geometry system started by subguides: thickness limits and expansion can now be adjusted per geometry, and defaults for subscales and subguides can be set globally. Bin edge openness, square blur-dot shapes and nested-interval width helpers round it out, plus valid data types annotated across nearly all parameter documentation.
View source ↗ - 2y ago
Blurred dotplots draw Monte Carlo error; weights reach every estimator
⚡ SPARKgeom_blur_dots() gives each dot its own standard deviation, and stat_mcse_dots() uses it to show quantiles alongside their own Monte Carlo error — uncertainty about uncertainty, rendered as blur. In the same release the weight aesthetic propagates through densities, CDFs, every interval type and every point summary, and sub-geometries gain axis annotations via subguides.
View source ↗ - 2y ago
C++ dotplot binning and safer bandwidth fallbacks
Wilkinson dotplot binning moves to C++, which mainly shows on large dotplots, and failing bandwidth estimators now fall back to nrd0 with a warning suggesting a dotplot or histogram instead. A bar layout and a batch of ggplot2 forward-compatibility fixes complete the release.
View source ↗ - 3y ago
Bounded density becomes the default; existing charts change
⚡ SPARKThe default density estimator switches to density_bounded() with Sheather-Jones bandwidth, which the maintainer warns will alter existing plots — accepted as the cost of accurate estimation on bounded data. Histograms are rebuilt on a density_histogram() estimator with fine-grained break and alignment control, and geom_spike() adds annotations to slabs.
View source ↗ - 3y ago
Categorical distributions, hex layouts, pluggable density estimators
Slab and dots stats accept non-numeric distributions including categorical and Bernoulli, dotplot layout gains hexagonal packing, smoothing modes and constrained-optimization nudging, and geom_swarm() and geom_weave() arrive as shortcuts. The density argument opens the estimator up to custom implementations — the plug point the next release would use to change the default.
View source ↗ - 4y ago
Computed variables shared across sub-geometries
Interval width and level become usable inside slab and dots sub-geometries, so densities can be filled by interval without cut_cdf_qi() and, unlike that approach, this works on highest-density intervals. scale_thickness_shared() lets thickness be compared across geometries — a prerequisite for plotting prior and posterior together.
View source ↗