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.17.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.17-cp310-abi3-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

ruviz-0.4.17-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.17-cp310-abi3-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

ruviz-0.4.17-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.17.tar.gz.

File metadata

  • Download URL: ruviz-0.4.17.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.17.tar.gz
Algorithm Hash digest
SHA256 6b1b116aa2726e47d63c3af83f82e259d9f89f11c926cc142f7f8a954d8cc8b8
MD5 61b4f83360ea6532369c47982781b3f7
BLAKE2b-256 41557edc479e76afc778881a4af0558a8112cd6ce569f0548a345bef8f25ca09

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.17.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.17-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: ruviz-0.4.17-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.17-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4b7e58975d23a6354e23d171bf6c8de1f8e2017600d2b2d0748b437ac7c7d13d
MD5 358994ae8bdc3628d68c5eeeff023ec3
BLAKE2b-256 0853b35b54023261fa8e74d12027dfe613bbfe419c8657f0fae26444cea8f42d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.17-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.17-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.17-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ea9a792bdc40d5438b89f84f476ddfa4808acbe7875f03db2cbd1b108522889
MD5 f26aeeb934a0c8e7b1444d0fc8cf432d
BLAKE2b-256 4ba29008bfe53751b34f8405fbda1c8b65dc4a7398a07c21fdc769727cee3fa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.17-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.17-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.17-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 339a29c71afa489e8359edae2a180b7748a9efa4715a577bb0fc89fe39adf772
MD5 9386b3ed172919890c1e20ba7c6e4b9f
BLAKE2b-256 e268f64c7811531556502d23308c1bdb638a5e457f5191d0dab1950ab0cbe203

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.17-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.17-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ruviz-0.4.17-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 17d90416ba969b1225f49fc2e53fb928642dc7ed2d27d89dd0288179bfe85dee
MD5 b84bab23cb808e78d75b21c954f73890
BLAKE2b-256 cdd82644fa751369008d94e00ee3426384ee78f927b57090d2aad4ca2919351e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruviz-0.4.17-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