Getting Started#
Installation#
Install via pip from PyPI (recommended):
pip install anyplotlib
Or clone the repository and install from source:
git clone https://github.com/CSSFrancis/anyplotlib.git
cd anyplotlib
uv sync # or `pip install -e .`
Quick start#
1-D plot#
import numpy as np
import anyplotlib as vw
x = np.linspace(0, 4 * np.pi, 512)
signal = np.sin(x)
fig, ax = vw.subplots(1, 1, figsize=(620, 320))
v = ax.plot(signal, axes=[x], units="rad")
v # display in a Jupyter cell
Supported construction parameters
Parameter |
Default |
Description |
|---|---|---|
|
|
CSS colour string for the line. |
|
|
Stroke width in pixels. |
|
|
Dash pattern: |
|
|
Line opacity (0 = transparent, 1 = fully opaque). |
|
|
Per-point symbol: |
|
|
Marker radius / half-side in pixels. |
|
|
Legend label (empty string = no legend entry). |
|
|
X-axis label (e.g. |
|
|
Y-axis label. |
Linestyle examples
t = np.linspace(0, 2 * np.pi, 256)
fig, ax = vw.subplots(1, 1, figsize=(620, 320))
plot = ax.plot(np.sin(t), linestyle="solid", color="#4fc3f7", label="solid")
plot.add_line(np.sin(t) + 0.6, linestyle="dashed", color="#ff7043", label="dashed")
plot.add_line(np.sin(t) + 1.2, linestyle="dotted", color="#aed581", label="dotted")
plot.add_line(np.sin(t) + 1.8, linestyle="dashdot", color="#ce93d8", label="dashdot")
fig
Alpha (transparency) example
fig, ax = vw.subplots(1, 1, figsize=(620, 320))
plot = ax.plot(np.sin(t), color="#4fc3f7", alpha=0.4, label="sin")
plot.add_line(np.cos(t), color="#ff7043", alpha=0.4, label="cos")
fig
Marker example
t_sparse = np.linspace(0, 2 * np.pi, 24) # few points → visible markers
fig, ax = vw.subplots(1, 1, figsize=(620, 320))
plot = ax.plot(np.sin(t_sparse), marker="o", markersize=5, color="#4fc3f7", label="o")
plot.add_line(np.sin(t_sparse) + 0.8, marker="s", markersize=5, color="#ff7043", label="s")
plot.add_line(np.sin(t_sparse) + 1.6, marker="D", markersize=5, color="#aed581", label="D")
fig
Post-construction setters
All line properties can be changed after creation without recreating the panel:
v.set_color("#ff7043")
v.set_linewidth(2.5)
v.set_linestyle("dashed") # or "--"
v.set_alpha(0.6)
v.set_marker("o", markersize=6)
What you can do with the returned Plot1D object
v.update(new_data)— replace y-data live (y-axis range recalculated automatically).v.add_line(data, x_axis=x, color="…", linestyle="…", alpha=…, marker="…", label="…")— overlay additional curves; the y-axis range expands automatically to include the new data. Returns an ID you can pass tov.remove_line(lid).v.add_span(v0, v1, axis="x")— shade a region along x or y.v.set_view(x0, x1)/v.reset_view()— programmatic pan/zoom (users can also pan/zoom interactively with the mouse and press R to reset).v.add_vline_widget(x)/v.add_hline_widget(y)/v.add_range_widget(x0, x1)— draggable overlays that report their position back to Python viaon_changed/on_releasecallbacks.v.add_points(offsets)/v.add_circles(offsets)/v.add_vlines(x_values)/v.add_hlines(y_values)/ … — static marker collections at explicit data coordinates.
See Plot1D for the full API reference, and
the Examples gallery (e.g. 1D Line Styles or 1D Spectra)
for worked examples.
2-D image#
import numpy as np
import anyplotlib as vw
data = np.random.default_rng(0).standard_normal((256, 256))
fig, ax = vw.subplots(1, 1, figsize=(500, 500))
v = ax.imshow(data, units="px")
v # display in a Jupyter cell
Bar chart#
import numpy as np
import anyplotlib as vw
values = np.array([42, 55, 48, 63, 71, 68], dtype=float)
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
fig, ax = vw.subplots(1, 1, figsize=(560, 320))
bar = ax.bar(values, x_labels=months, color="#4fc3f7", show_values=True)
bar # display in a Jupyter cell
For more elaborate usage, see the Examples gallery or the API Reference.