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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

ruviz-0.4.18-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.18.tar.gz.

File metadata

  • Download URL: ruviz-0.4.18.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.18.tar.gz
Algorithm Hash digest
SHA256 e8c7617fff602e0e343957f3ca74d7bb8ceee53bfe9c6bbf494932c9a8814707
MD5 4bd8fefd340ed7118cf199e83bff5d38
BLAKE2b-256 3fbfc15e6eb27eec7d1f2e852c51e9b11474ae3cac39e561b4dc5aba021b2f32

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ruviz-0.4.18-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.18-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 985327287c60eb4d064a0a015ceaa58f26733cc3955aa341f301f693d6f2d8af
MD5 5991eb9edabd82063b7e9340f444514e
BLAKE2b-256 b2bac0142c01a2ca435218c61fe6f9bbe17727831239381044b67e93ef55b8b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ruviz-0.4.18-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d81c59393dc4d119aaedc33369e4cb5a2423dbeabc5d935ef553e2afe508d74
MD5 6b4057b01e1bcbbfddb6e08798f2141b
BLAKE2b-256 4e45d2011c08b3abf1664262f4b53299e8d82c71e94d27d023a67b53addf4d85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ruviz-0.4.18-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 881bc4835eed65f5e4d4accdb4d23ec5d4bb3a5e50ee19baa1f8875b64ae29ce
MD5 716d65f5d80832c1875186740a4b9c47
BLAKE2b-256 f4d266bd8afcee3505f17e4ca614a3142140c929403f77b40cb6fe273cd316c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ruviz-0.4.18-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 238e171284b1f054131ea488a5ddd72ec2e0c8956e90c8a212fcaf058a43265a
MD5 75d19dedad2cb70f96c7c06c04e98b58
BLAKE2b-256 12d948390a66e20eae45a4ee016030e3c4230ea446021880b1d356446590ace1

See more details on using hashes here.

Provenance

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