Files
ETPlot/plotstyle/README.md
T
lars 5109b6505c
CI / lint:ruff (push) Successful in 25s
CI / format:ruff (push) Successful in 14s
CI / typecheck:ty (push) Successful in 15s
CI / vulnerabilities:pip-audit (push) Successful in 17s
CI / test:pytest (push) Successful in 24s
Move build system from setuptools to uv, wire uv into CI/CD
Convert both pyproject.toml files to the uv_build backend and turn the
repo into a proper uv workspace (plotstyle moved to src layout, since
uv_build requires the module in its own subdirectory). Dev tooling
moves from an optional-dependencies extra to a dependency-group, and
plotstyle's matplotlib dependency is now its own rather than a
gallery "plotting" extra.

Gitea Actions workflows and the Dockerfile now use astral-sh/setup-uv,
uv sync, uv run, uv build, and uv publish throughout instead of pip,
build, and twine. Also fixes .dockerignore, which was excluding
uv.lock, deploy/, and README.md and would have broken even the
previous Dockerfile's COPY of deploy/entrypoint.sh.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 10:30:20 +02:00

1.5 KiB

plotstyle

A KIT (Karlsruhe Institute of Technology) corporate-design matplotlib styling toolkit — a validated color palette, consistent spines/ticks/ gridlines, LaTeX text in a modern sans font, and a few building-block functions (figure titles with a parameters subtitle, a same-size colorbar helper, an outside-axes legend, panel labels) for producing figures that look consistent across a thesis and a slide deck.

Requires a local LaTeX toolchain (latex + dvipng) — plotstyle always renders text through real LaTeX, there's no fallback.

import numpy as np
import plotstyle as ps

ps.use()  # once, before creating any figure

fig, ax = ps.new_figure(
    "thesis-single",
    title="Measured signal",
    params={"N": 512, "seed": 42},
)
x = np.linspace(0, 10, 200)
ax.plot(x, np.sin(x), label="signal")
ax.set_xlabel("Time (s)")
ax.set_ylabel(r"Amplitude $A(t)$")
ps.style_legend(ax, title="Series")

ps.savefig(fig, "plots/measured_signal", formats=("pdf",))

This package is developed as part of the ETPlot monorepo, where it is paired with gallery, a static HTML gallery generator that turns directories of plot PDFs into a browsable website — plotstyle has no code dependency on gallery, the two only meet on disk via the PDF (and optional metadata.yaml) files a plotstyle script writes out. See that repo's examples/plotstyle_showcase.ipynb for a fully rendered tour of every function, and plotstyle/CLAUDE.md for the full API reference.