This release is a pre-release and may not be stable for production use.
Figurestead
Experimental scientific figures for Python: line, scatter, histogram, strip-summary and heatmap figures with explicit labels and themes.
Python 0.9.0a6
Requires Python >=3.10, Matplotlib >=3.7, NumPy >=1.24 and Pillow >=10. Preparation candidate: the command below is for this version after publication. For the currently published release, use Python 0.9.0a5. To review now, install the exact retained candidate wheel or sdist. In a fresh virtual environment:
python -m pip install figurestead==0.9.0a6
from figurestead import PlotSpec, line, save_figure
figure, axes = line(
[0, 1, 2], [[0, 1, 0]],
theme="lavender_fog_notebook",
spec=PlotSpec(title="Synthetic response", xlabel="Time (s)",
ylabel="Response (a.u.)", note="Synthetic example; not measurements."),
)
save_figure(figure, "response.png", dpi=150)
save_figure(figure, "response.svg")
The destination directory must exist. save_figure stages and replaces a single
output file only after a successful save. Rendering errors propagate and leave
an existing destination unchanged. For streams or intentionally external SVG
images, use Matplotlib's figure.savefig and manage those outputs directly.
Carried forward from a5: measured note and sample-count placement, warnings when explicit histogram edges exclude observations, and optional signatures fitted only where there is measured spare space. Callers supplying axes own their margins; an insufficient source-note footer raises sizing guidance. See the frozen layout and export contract for the behavior incorporated into this version.
Numeric NaN/infinity category identities reject before string coercion; literal string labels remain valid. Appended labeled lines retain truthful accumulated legends; anonymous scatter/strip layers do not acquire scientific labels.
New in the a6 candidate: opt-in monotone interpolation preserves each interval's
endpoint bounds; ordinary line drawing limits marker-protection work to nearby
candidates while preserving marker interiors and continuous authored rhythm.
The categorical-matrix extension measures all required decorations, including
rotated labels and the status legend after native colorbar removal. Insufficient
space raises sizing guidance rather than silently exporting clipped content.
These repairs do not change observations, normalization, palette values or the
bounded line-identity profile. Performance gains depend on geometry and density.
The auxiliary compile_terminal_scene rejects unsupported contracts rather than
silently claiming fidelity; it remains finite-only and is not NaN-gap transport.
Inspect exports at their intended size. Shared Python/browser semantics do not imply identical pixels or matching renderer coverage. Reference themes have a bounded three-series line designation, not universal accessibility or physical print qualification.
Line behavior and limits · Source · Issue tracker
MIT licensed.
Metadata
Release files for figurestead 0.9.0a6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| figurestead-0.9.0a6.tar.gz | 478.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| figurestead-0.9.0a6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 584.6 kB
Release files / figurestead-0.9.0a6.tar.gz
| Download URL | figurestead-0.9.0a6.tar.gz |
|---|---|
| Size | 478.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1c6226df334c23f4dc8c005e0119e440a7429a7fe61d7af43730a6c4172d565
|
|
BLAKE2b-256 checksum How to use checksums |
c58a1a7922630d91ddd586e5da5b9da3fa19eb73285e8a59b10c33c9db2f6e53
|
| 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 23, 2026.
Transparency logRelease files / figurestead-0.9.0a6-py3-none-any.whl
| Download URL | figurestead-0.9.0a6-py3-none-any.whl |
|---|---|
| Size | 105.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f2bf81b9a8fbfc4a55b718fbb528e83aa9516d3535458f54cb6dfe9a89657466
|
|
BLAKE2b-256 checksum How to use checksums |
7aafaa40490c8b86e1fff47d17b41a7eac7055f408ea069921ec85845a43a588
|
| 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 23, 2026.
Transparency logSecurity for figurestead 0.9.0a6
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for figurestead-0.9.0a6.tar.gz
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 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.