2 unstable releases
Uses new Rust 2024
| 0.4.0 | Jun 15, 2025 |
|---|---|
| 0.1.0 | Feb 23, 2024 |
#341 in Visualization
69 downloads per month
295KB
3K
SLoC
gguppy
[!CAUTION] 🚧 This package is still in work and subject to great change.
gguppy (né arwggplot) is an interactive, unified, layered Grammar of Graphics implementation in pure Rust.
Compose once, chart anywhere with gguppy.
Why gguppy?
1. Friendly syntax
Rust is strange for python and R users. gguppy aims to provide a familiar, friendly and ergonomic syntax. You can even write in different coding styles.
Grammar of graphics is a first class citizen in gguppy:
use gguppy::prelude::*
df = minidf!["x" => &[1, 2, 3], "y" => &[4, 5, 6]]
plot = ggplot![df, aes("x", "y")] + geom_point![]
A MATLAB/matplotlib-esque syntax will also be supported.
use gguppy::prelude::*
fig, axis = mplot![]
2. Batteries included
gguppy aims to allow you to write once, plot anywhere using its flexible and extensible architecture.
3. Speed
Workspace Structure
Crates
-
🛠️ gguppy_core
- 🛠️ Implementation of the grammar of graphics in
no_stdRust - 🛠️ Consumes any dataframe-like structure implementing the
GGDatatrait - 🛠️ Extensible with any plot types implementing the
GGCapabletrait - 🛠️ Produces geometric primitives implementing the
DrawablePrimtrait - 🛠️ Compiles for static desktop display or interactive wasm plots
- 🛠️ Implementation of the grammar of graphics in
-
🛠️ gguppy_data
- 🛠️ Minimalist dataframe
minidfplottable bygguppyinno_stdRust - 🛠️ Features adapters for
arrowandarrow2 - 🛠️ Features adapters for
polars,pandas, and more
- 🛠️ Minimalist dataframe
-
🛠️ arwggplot
- 🛠️ Minimalist svg backend for
gguppyinno_stdRust - 🛠️ Features vector backends to svg, eps, and more
- 🛠️ Features raster backends to bmp, png, and more
- 🛠️ Minimalist svg backend for
Module Layout
- src
- lib.rs -
modandre-export - prelude.rs -
usestatements for the entire library
- lib.rs -
Dependencies
~1MB
~14K SLoC