Skip to main content

Rust data visualization framework - The modern Plotly alternative

Project description

SeraPlot - High-Performance Visualization & Production-Ready ML

SeraPlot is a Rust-native framework that bundles 60+ interactive chart types and a complete machine-learning toolkit in a single binary - no Plotly, no Matplotlib, no scikit-learn dependency. Build dashboards, train models, ship to production, all from one library.

📖 Full documentation: https://feur25.github.io/seraplot/introduction.html

📦 PyPI: pip install seraplot ·


Why SeraPlot

  • 100x to 8000x faster than Plotly + Matplotlib on chart generation - measured, reproducible.
  • Zero Python dependencies for plots - every renderer ships as compiled Rust, ready for serverless, edge devices and embedded systems.
  • Plots + ML in one package - no need to glue 5 libraries together. Visualize, preprocess, train, evaluate from a single import seraplot as sp.
  • Production-grade - online learning (Welford partial_fit), incremental encoders, deterministic outputs, zero hidden global state.
  • Multi-target - Python (PyPI), JavaScript / WebAssembly (npm), C / C++ FFI, C# bindings.
  • Self-contained HTML output - every chart is a single inlined HTML file. Drop into a slide, an email, a notebook, a dashboard - it just works.

Gallery - Chart Types

2D Charts

2D-1 2D-2 2D-3 2D-4
2D-5 2D-6 2D-7 2D-8

3D Charts

3D-1 3D-2 3D-3 3D-4
3D-5 3D-6 3D-7 3D-8

Machine Learning - Production Toolkit

A scikit-learn compatible API, written in Rust, with online-learning primitives ready for streaming workloads.

Supervised Learning

  • Linear models: Linear / Ridge / Lasso / ElasticNet / Logistic regression with score, predict_proba, decision_function.
  • Trees & ensembles: Decision Tree (classifier + regressor), Random Forest, Gradient Boosting.
  • Neighbors: KNN classifier + regressor.
  • Naive Bayes, SVM, MLP - full estimator interface.

Unsupervised Learning

  • Clustering: KMeans, DBSCAN, Agglomerative, Mean-Shift.
  • Dimensionality reduction: PCA, t-SNE, UMAP.

Preprocessing & Pipelines

  • Online scalers: StandardScaler with Welford partial_fit for streaming data - no full pass required.
  • Incremental encoders: OneHotEncoder and OrdinalEncoder with category union across batches.
  • Pipelines: Chain transformers + estimator with full score / predict_proba / decision_function propagation.
  • Train/test split, cross-validation, grid search.

Metrics

Accuracy, precision, recall, F1, ROC-AUC, log-loss, R-squared, MAE, MSE, RMSE, confusion matrix, classification report - identical signatures to scikit-learn.


Installation

pip install seraplot

Conda / uv users:

conda install -c conda-forge seraplot
uv pip install seraplot

JavaScript / WebAssembly:

npm install seraplot

Performance

SeraPlot consistently delivers 100x to 8000x speedups over Plotly and Matplotlib on chart generation, with a flat memory profile that fits inside containers, lambdas and embedded targets. ML estimators are within ~5% of scikit-learn while supporting partial_fit for streaming workloads that scikit-learn cannot handle natively.


Project details


Release history Release notifications | RSS feed

This version

2.6.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seraplot-2.6.0-cp311-cp311-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file seraplot-2.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: seraplot-2.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for seraplot-2.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8b78938dc9adc19f35c7fcf52417101cf806880feaf0ca5154fa46468cedfc3d
MD5 a02faf24c8d5017d1f8e2e5b498486ad
BLAKE2b-256 3de7924e4c8b5d97ab73f2da39ca3b48493a08b2ccc62d7f55c5656892b3e7bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page