A Rust reimplementation of ggplot2's grammar of graphics, compiled to
WebAssembly. Data comes from DuckDB-Wasm (with the
spatial extension) — everything below runs client-side.
geom_sf
DuckDB reads Natural Earth countries and ST_AsTexts the
geometry to WKT; ggplot-rs renders an SVG. Hover a country,
click one to zoom to its continent, or
scroll to zoom and drag to pan (double-click resets).
loading…
DuckDB reads the USGS
GeoJSON feed and ST_AsTexts each quake to WKT; ggplot-rs
colours the points by magnitude over a country basemap. Hover for the
location; scroll to zoom, drag to pan, double-click to reset
(ggplot-rs re-renders with the new window — the axes update too).
…
A 100k-point scatter drawn by the raster backend (no DOM node per point) with nearest-point hover. Drag a box to brush — the selected points stay bright while the rest fade, and the ggplot-rs bar chart on the right updates with the per-group counts in your selection.
…
The USGS earthquakes in an interactive table (sort, search, paginate via Grid.js) beside a live ggplot-rs magnitude histogram. Drag the sliders to crossfilter both at once.
The same live earthquake data through many geoms — boxplots, violins, a
loess fit, a kernel density, a hex-binned 2-D density, and a time series.
Every chart is one render_plot({ geom, aes, … }) call into
ggplot-rs.
…