finds.dev← search

// the find

plotters-rs/plotters

★ 4,581 · Rust · MIT · updated Apr 2026

A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀

Plotters is a pure-Rust charting library that renders to bitmap, SVG, HTML5 canvas (WASM), GTK/Cairo, and real-time windows. It's for Rust developers who need to generate plots without leaving the language — particularly useful in data processing pipelines, embedded contexts, or WASM where Python/JS plotting isn't an option.

The backend abstraction is genuinely well-designed: the same chart code works on a PNG, an SVG, a browser canvas, or a live windowed app without changing anything except the backend constructor. Feature flags are granular enough that you can strip the dependency tree down to almost nothing for constrained environments — `ab_glyph` in particular lets you ship a fully static binary with no system font dependency. The coordinate system is a real abstraction, not just axis scaling: nested coordinates, logarithmic axes, datetime axes, and 3D projections all compose through the same `Ranged` trait. The evcxr/Jupyter integration is a nice touch for exploratory work in Rust.

The API surface is verbose and low-level for common tasks — making a basic line chart with a legend is 20+ lines while matplotlib does it in 3. There's no built-in interactivity: no zoom, pan, hover tooltips, or click events, which makes it a non-starter for anything dashboard-like even in the WASM target where you'd expect it. Chart type coverage has real gaps: no scatter with color mapping, no heatmap, no violin plot, no grouped bar chart — you can build them yourself from primitives but then you're doing a lot of work the library should handle. The GTK and canvas backends live in separate repos with inconsistent maintenance, so 'WASM support' in practice means you need to track down plotters-canvas and hope it's been kept current.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →