No project description provided
Project description
rtplot — real-time plotting over ZMQ
rtplot pushes live data from a Python script to a browser plot — locally or across a network — in a few lines of code. The plot page also hosts interactive widgets (buttons, sliders, dials, numeric / text displays) that feed values back to the sender in real time.
Typical use: a robot or data-acquisition script runs on a Raspberry Pi, and you watch signals and tweak gains from a laptop on the same Wi-Fi.
How it works
Two processes talking over ZMQ, plus a browser viewer:
flowchart TD
script["Your Python script<br/>send_array() · poll_controls()"]
subgraph server["rtplot-server"]
browser["browser tab<br/>localhost:8050"]
end
script -- "data :5555" --> server
server -- "controls :5556" --> script
Sender and server don't have to be on the same machine — see the networking guide.
Install
Server — grab the prebuilt binary from the Releases page:
| Platform | Asset |
|---|---|
| Windows | rtplot-server-<version>-windows-x64.exe |
| Linux | rtplot-server-<version>-linux-x86_64.tar.gz |
| macOS (Apple Silicon) | rtplot-server-<version>-macos-arm64.tar.gz |
No Python needed on the viewing machine. On Windows the binary opens a small Tk status window showing the listening URL.
Client — pip install in the env that runs your script:
pip install better-rtplot
(If you'd rather run the server from Python too, use
pip install "better-rtplot[browser]" — see the
API reference.)
Your first plot
flowchart TD
t1["terminal 1: start the server"]
t2["terminal 2: run your script"]
br["browser: open localhost:8050"]
t1 --> t2 --> br
Terminal 1 — start the server. Run the prebuilt rtplot-server
binary you downloaded above. Open http://localhost:8050 in a
browser — the page is blank until data arrives.
Terminal 2 — run your sender script. Save as my_plot.py:
from rtplot import client
import time
client.local_plot()
client.initialize_plots(["my signal"])
for i in range(1000):
client.send_array(i * 0.01)
time.sleep(0.01)
python my_plot.py
A rising line now draws itself in the browser tab.
Highlights
- Fast. Binary WebSocket deltas up to 1 kHz; the browser coalesces
samples into one repaint per
requestAnimationFrame, so rendering tracks your monitor refresh rate regardless of sample rate. - Browser-based. aiohttp + uPlot, no desktop GUI toolkit, works over SSH port forwarding.
- Remote-friendly. Sender or plot host can bind. Live Bind / Connect buttons retarget without restart.
- Config lives with the data. The sender declares plot layout.
- Interactive controls. Buttons, sliders, dials, displays — polled from your loop, no threads, no callbacks.
- Static HTML snapshots.
save_snapshot("out.html")writes a self-contained ~65 KB file with the current trace embedded.
Where to go next
- API reference — every
rtplot.clientfunction, the plot-layout schema, interactive controls, snapshots, browser UI, andrtplot-serverCLI flags. - Networking guide — Mode A vs. Mode B, viewing from a phone or second laptop, the WSL2 wrinkle, Cloudflare Tunnel, Tailscale.
- Examples — runnable scripts with embedded HTML snapshots you can open offline.
Issues and feature requests: github.com/jmontp/rtplot/issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file better_rtplot-0.4.11.tar.gz.
File metadata
- Download URL: better_rtplot-0.4.11.tar.gz
- Upload date:
- Size: 443.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab545cebf14ef029631bedcea149146a8fc33dc022154036542aa4f108f529cb
|
|
| MD5 |
b5014db28de9fc90517ec0904c65623c
|
|
| BLAKE2b-256 |
5eb20c2509870ebcd66d01c0d7ded6466181aacf9e48755d4fd2046d2d1ef60a
|
File details
Details for the file better_rtplot-0.4.11-py3-none-any.whl.
File metadata
- Download URL: better_rtplot-0.4.11-py3-none-any.whl
- Upload date:
- Size: 448.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e095e746a9a97416bc691e5310df3c51c154d87cff4461041ffb81f282aa1b9e
|
|
| MD5 |
0d0494fe550ef0db3592f431a1757b0e
|
|
| BLAKE2b-256 |
37b78284d569453f2b4f6d730b18d165176d7923ff8d7d45aca890209e43c18a
|