Home
A backend-agnostic plotting library.
Write your analysis once; render using matplotlib, plotly, or altair with a single flag.
No lock-in to any rendering engine.
How it works¶
Every plot flows through three clean layers:
Raw arrays / DataFrames / xarray Datasets
↓
PlotData immutable input containers
↓
PlotSpec backend-agnostic IR — the decoupling boundary
↓
Backend matplotlib · plotly · altair
Plot subclasses never import backends. Backends never import plot subclasses. Swap the backend at call time, via a context manager, or globally — the plot code stays unchanged.
Features¶
-
Five plot types
XYPlot·PKSpectrum·ClSpectrum·BackgroundEvolution·TrianglePlot·XYZColored -
Three backends
Publication-quality PNG via matplotlib, interactive HTML via plotly, Vega-Lite JSON via altair.
-
Multi-panel figures
Compose plots into grids with colspan/rowspan, shared axes, and custom column/row ratios — two lines of code.
-
LaTeX labels
Pass raw LaTeX strings through to plotly's MathJax renderer for publication-quality interactive HTML export.