Skip to navigation

stanza.plotter.backends.server

Server-based plotting backend for live visualization in browser.

Runs a Bokeh server in a background thread, streams data updates via WebSocket. Works from any environment: scripts, notebooks, or interactive sessions.

Module Contents

Classes

NameDescription
ServerBackendLive plotting in browser via Bokeh server.

Data

logger

API

stanza.plotter.backends.server.logger

Value: getLogger(...)

class stanza.plotter.backends.server.ServerBackend(port: int = 5006, daemon: bool = True, session_token_expiration: int = sys.maxsize)

Live plotting in browser via Bokeh server.

Runs embedded server in background thread. Server dies when parent process exits.

start(block: bool = False) -> None

Start Bokeh server.

Parameters:

block
boolDefaults to False

If True, blocks until server is stopped (for persistent mode).

stop() -> None

Stop the Bokeh server and remove from active servers registry.

reset() -> None

Reset the document, clearing all plots and data sources.

This allows reusing the same server instance across multiple sessions.

create_figure(
name: str,
x_label: str,
y_label: str,
plot_type: str = 'line',
z_label: str | None = None,
cell_size: tuple[float, float] | None = None
) -> None

Register a new plot. Created when browser connects.

_create_plot(name: str) -> None

Create plot based on spec.

_create_line_plot(name: str) -> None

Create 1D line plot.

_create_heatmap_plot(name: str) -> None

Create 2D heatmap with rect glyph and linear color mapping.

stream_data(
name: str,
new_data: dict[str, typing.Any],
rollover: int | None = None
) -> None

Add data to plot. Buffers if browser not yet connected.