Skip to main content

plasma-plots

Note: This library is 100% written by AI, I have literally not looked at a single line of code. So why should you trust it? You should trust it because of the following LEAN 4 PROOF.

Plots and diagnostics of labeled xarray data from plasma simulations: the output of Struphy, and of any code whose arrays follow the same conventions (dimensions t, eta1/eta2/eta3, mapped coordinates X/Y/Z, see Getting started). It also reads GVEC's equilibrium evaluations directly. It is a separate package, so it can evolve and release independently of the Struphy runtime.

Full documentation: https://max-models.github.io/plasma-plots

Installation

Python 3.10 or newer is required; CI tests Python 3.10 to 3.14. The base install plots in-memory xarray data. Install extras for file formats and optional renderers:

pip install plasma-plots
pip install "plasma-plots[netcdf]"
pip install "plasma-plots[netcdf,plotly]"
Extra Enables Dependencies
netcdf Read netCDF3/netCDF4 files through xarray and the CLI netCDF4
plotly Interactive browser plots and static Plotly exports plotly, kaleido
tikz TikZ/pgfplots versions of the plots for LaTeX (backend="tikz") maxplotlibx (and pdflatex to compile)
pyvista 3-D scenes and rendering pyvista, imageio
profiling Timing summaries and profiling plots scope-profiler[pproc]
desc Evaluate DESC equilibria desc-opt
gallery Export Struphy example-gallery figures and profiling plotly, kaleido, scope-profiler[pproc]>=0.6.1
dev Tests, linting and documentation tooling pytest, ruff, h5py, griffe

Struphy, GVEC and Zarr are separate installations; no extra above installs them. Struphy users need the compatible output API described below. Install gvec for GVEC evaluation or zarr to open Zarr stores. MP4 export requires system ffmpeg; Matplotlib windows require a working GUI/display, and static Plotly exports through Kaleido require a compatible Chrome installation.

For development, install with pip install -e ".[dev]".

Struphy compatibility

Struphy integration is tested against commit caddd229a3fcba1fada577d1af46d012e93d8b49 (the repository's pinned submodule, reporting version 3.3.0). Use that revision for a reproducible installation; compatibility with other Struphy revisions, including older published builds, is not guaranteed. Struphy is optional when working with ordinary xarray data.

Usage

Creating a Struphy Output loads plasma-plots, which registers out.plot, out.analysis and the .plasma accessor on every product:

from struphy.post_processing.output import Output

out = Output("path/to/run")
out.evaluate("em_fields/phi").plasma.plot.slice(x="eta1", y="eta2", t=-1)

In Python, import plasma_plots; help(plasma_plots) (or plasma-plots guide in a terminal) gives an overview, printing an accessor lists its methods (print(phi.plasma.plot)), and help() on a method shows every parameter. For language models and coding agents, the documentation is available as plain text at https://max-models.github.io/plasma-plots/llms.txt. API.md (or plasma-plots api) is a one-page index of every accessor method and function, and AGENTS.md explains the code for agents working on it.

From the shell, the plasma-plots command saves figures of a Struphy run folder or a netCDF file without any Python: plasma-plots info sim_1, plasma-plots plot sim_1 em_fields/phi slice t=-1 eta3=0 -o phi.png, plasma-plots quicklook sim_1 -o figures/ (see the command-line guide).

Direct plotting functions are available from plasma_plots.plotting; analysis functions are in plasma_plots.analysis.

The accessor provides time-series, lineout, slice, panel, vector, comparison, animation, and marker-trajectory plots. For three-dimensional scalar fields, install the optional PyVista dependency (pip install plasma-plots[pyvista]) and use field.plasma.plot.volume(t=-1), then call show() on the returned plotter.

Every Matplotlib plot can also be an interactive Plotly figure, with hover values, zoom and, for animations, a slider: pip install plasma-plots[plotly] and pass backend="plotly" (field.plasma.plot.slice(t=-1, backend="plotly")), or call plasma_plots.set_backend("plotly") once.

For a paper, every still plot can also be TikZ/pgfplots code with LaTeX text, converted by maxplotlib: pip install plasma-plots[tikz] and pass backend="tikz", then result.save("phi.tikz") (or .tex, .pdf); see the LaTeX figures guide.

Metadata

Release files for plasma-plots 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plasma-plots 0.1.1
File Size Uploaded
plasma_plots-0.1.1.tar.gz 361.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plasma-plots 0.1.1
File Interpreter ABI Platform
plasma_plots-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 643.7 kB

Release files / plasma_plots-0.1.1.tar.gz

Download URL plasma_plots-0.1.1.tar.gz
Size 361.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cfc39c9a7261b8599928257a564ec5ee19ba55b0f309b7917533dd028a43af66
BLAKE2b-256 checksum
How to use checksums
5883e5ae0aae6c66c061e747a9948ffdc4a3e8265ed0e8a6cac2de4b05c2f069
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / plasma_plots-0.1.1-py3-none-any.whl

Download URL plasma_plots-0.1.1-py3-none-any.whl
Size 281.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e2f5d4de722b44f059c3716bce9b6bbe086508e4942fd7759b7b70e963fcc7ad
BLAKE2b-256 checksum
How to use checksums
607c675c9e83fbc53c1cc37108ee61bc1718686cf88e60dbe6acc09fdfd3c5b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page