Skip to main content

Python bindings and notebook widget support for ruviz

Project description

ruviz for Python

ruviz for Python wraps the Rust plotting runtime with a fluent Python API, static export helpers, native desktop show(), and notebook widget support. It requires Python 3.10 or newer and installs the runtime dependencies needed for NumPy inputs, static rendering, and AnyWidget notebooks.

Install

pip install ruviz

If you want pandas or Polars dataframe inputs, install the matching optional extra:

pip install "ruviz[dataframes]"
# or only one dataframe backend:
pip install "ruviz[pandas]"
pip install "ruviz[polars]"

Quick Start

import numpy as np
import ruviz

x = np.linspace(0.0, 4.0, 50)
y = x**2

(
    ruviz.plot()
    .line(x, y)
    .title("Quadratic")
    .xlabel("x")
    .ylabel("y = x^2")
    .save("quadratic.png")
)

Notebook and Desktop Usage

  • In Jupyter, plot.show() displays a static PNG in the cell output.
  • Use plot.widget() when you want the synced WASM-backed notebook widget.
  • plot.size_px(width, height) also controls the widget's displayed size and aspect ratio.
  • Without size_px(...), the widget uses the default PNG size (640x480) and shrinks proportionally if the notebook column is narrower.
  • Drag the widget's bottom-right handle to resize the display freely.
  • Hold Shift or Ctrl while dragging the handle to preserve the current aspect ratio.
  • In the widget, right click opens the export menu and right drag performs box zoom.
  • Outside notebooks, plot.show() opens the native interactive window.
  • The published Linux wheel focuses on static rendering and notebook widgets. Install from source on Linux if you need the native desktop plot.show() window.
  • plot.render_png() returns PNG bytes and plot.render_svg() returns an SVG string.
  • plot.save(path) writes PNG, SVG, or PDF according to the file extension and returns the output Path.

Reactive Notebook Data

Use ruviz.observable(...) for notebook-driven updates that keep explicit widgets in sync:

import numpy as np
import ruviz

x = np.linspace(0.0, 6.0, 200)
y = ruviz.observable(np.sin(x))

plot = ruviz.plot().size_px(640, 360).line(x, y).title("Live Sine Wave")
widget = plot.widget()

ObservableSeries supports elementwise arithmetic and NumPy ufuncs. Derived observables stay live until you write to them directly. Live observable series are supported by line, scatter, bar, histogram, boxplot, error_bars, and error_bars_xy; other plot types snapshot their inputs.

import numpy as np

scaled = np.sin(y * 2.0 + 0.25)
plot.line(x, scaled)
y.replace(np.cos(x))

deepcopy(plot) creates an independent live copy with fresh observables, while plot.clone() remains a static snapshot copy.

Documentation

Contributor Workflow

cd python
uv sync
uv run maturin develop
uv run python scripts/generate_gallery.py
uv run mkdocs serve

Rebuild the bundled widget frontend from the repository root when you change the web SDK or packages/ruviz-web/src/python-widget.ts:

bun run build:python-widget

Project details


Download files

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

Source Distribution

ruviz-0.4.16.tar.gz (4.6 MB view details)

Uploaded Source

Built Distributions

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

ruviz-0.4.16-cp310-abi3-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

ruviz-0.4.16-cp310-abi3-manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

ruviz-0.4.16-cp310-abi3-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

ruviz-0.4.16-cp310-abi3-macosx_10_12_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file ruviz-0.4.16.tar.gz.

File metadata

  • Download URL: ruviz-0.4.16.tar.gz
  • Upload date:
  • Size: 4.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ruviz-0.4.16.tar.gz
Algorithm Hash digest
SHA256 34743e98dfae7ecce40c81a65f14434d9efd2eb5b8083aab230629df028947b5
MD5 d19ada51c87fe8ca0d223e31917ace70
BLAKE2b-256 5e115068edde9effcf5dace566a3c5d81115a33cb6d4c681be3441c67f2a4b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.16.tar.gz:

Publisher: release.yml on Ameyanagi/ruviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ruviz-0.4.16-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: ruviz-0.4.16-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ruviz-0.4.16-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5f2bfab37687598f93df21e8fbd290257a3949be6b29883b3ff2639b725c4abb
MD5 732d88af2d5d9c97e06010c72bec55fa
BLAKE2b-256 bb13884370cb9984c7b5401e7923b26cd2eb66c29885f49c17a682fc832d4dca

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.16-cp310-abi3-win_amd64.whl:

Publisher: release.yml on Ameyanagi/ruviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ruviz-0.4.16-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.16-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e435725a446e996b477914ce5794f3a17e5d63e1f1f25d649a48b4b4101825a4
MD5 38fd248ea46de49dcc393974c299a6c3
BLAKE2b-256 32137d19a4d6ffc928acc7b350bfe8d9b0a93de09d28c4aa250fc345bfc523e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.16-cp310-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on Ameyanagi/ruviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ruviz-0.4.16-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.16-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 287a463bb231bf861f4850e84596b9295f0bb4d9d1c65c3313cd3ec4836ca46d
MD5 0de3a35124006e38322e486828ded51f
BLAKE2b-256 cf350418260a44d917b8712773d3f976f4597ddfb9f5381fb9d65a79db64dcc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.16-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on Ameyanagi/ruviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ruviz-0.4.16-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.16-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a2ab91a7d56b3244b86d5d833d9f755071c8b0f875ee35c2605e52099ea44ffd
MD5 2e7b2ed0dc004d11447b40bd6b6d60e8
BLAKE2b-256 d1ca2079429b79684755a46793810c7a3736c6347fd7a7f2cf98e0c600d996c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.16-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on Ameyanagi/ruviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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