Skip to content

Implement once, visualize everywhere.

Static. Interactive. Raster. Vector. Web. Desktop.

Visualize data using your favorite language

Section titled “Visualize data using your favorite language”

Rust

Directly use the pluot Rust crate to render plots from within your Rust code.

JavaScript

Render static and interactive plots in the web browser. Made possible via WebAssembly bindings in browsers that support WebGPU.

Python

Render static plots in Python environments via PyO3 bindings to the Rust library. Or, render interactive plots in notebook environments via AnyWidget.

More coming soon

If you don't see your favorite programming language here, reach out on GitHub.

Fast

Render millions of points on each frame of an animation or user interaction (e.g., pan, zoom).

Small

The WASM binary size is currently less than 4MB, making it practical to integrate into web applications.

Scalable

Scales to out-of-memory dataset sizes using partial reads of arrays/columns and data tiling/aggregation strategies.

Raster or vector output

The same plot implementation can support both raster and vector outputs. Use vector outputs for publication-quality graphics exporting. Use raster outputs for high-performance interactive visualization powered by WebGPU.

Layer-based API

Compose the built-in layers to create complex plots, or build your own layers with full control over the WebGPU shaders, buffers, render pipeline, and draw calls.

Leave the browser behind

Plotting functions are implemented in Rust using wgpu, and do not rely on a web browser or JavaScript runtime when plotting in non-web environments.