plotsalot
plotsalot is an independent Python library for statistical visualizations with
structured, extractable results. It provides Polars-first analysis workflows and
Matplotlib figures inspired by the public behavior of
ggstatsplot.
Plotsalot 1.0 defines a stable public contract for its documented classical, robust, Bayesian, categorical, coefficient, and meta-analysis families. Those families and the 1.0 package candidate have passed their recorded M0–M7 technical gates. Fixed- Student-t4 robust aggregate meta-analysis is retained as experimental for 1.0 after its locked M7 calibration; other supported modes follow their documented stability classifications. Do not treat a successful computation or plot as automatic validation of a statistical model or a substantive conclusion.
Install
Plotsalot supports Python 3.11 and newer on Linux and macOS. Install the current release from PyPI:
python -m pip install plotsalot
For development from a checkout:
make setup
R and Docker are development-only oracle tools. They are not package runtime dependencies.
Quick start
import polars as pl
from plotsalot import gghistostats
data = pl.DataFrame({"value": [1.0, 2.0, 3.0, 4.0, 5.0]})
plot = gghistostats(data, "value", test_value=0.0)
print(plot.result.to_dict())
plot.figure.savefig("histogram.svg")
Each plotting function returns a typed container with a Matplotlib figure, named axes, annotations, and a structured result. Analysis and rendering can also be separated so visual changes do not recompute statistics:
from plotsalot import analyze_gghistostats, render_gghistostats
analysis = analyze_gghistostats(data, "value", test_value=0.0)
plot = render_gghistostats(analysis, title="Observed values")
plot.axes["main"].grid(axis="y", alpha=0.2)
Find the right documentation
| Need | Go to |
|---|---|
| Complete a first analysis | Getting started |
| Choose a plot or analysis family | User guide |
| Interpret results and failure boundaries | Interpretation and limitations |
| Understand result and rendering contracts | Contracts |
Compare behavior with ggstatsplot |
Compatibility matrix |
| Review statistical definitions | Statistical methods index |
| Reproduce tests, oracles, and benchmarks | Reproducibility |
| Contribute a change | Contributing |
Supported workflow families
- one-sample histograms and labeled dot plots;
- scatter plots and correlation matrices;
- independent- and repeated-group comparisons;
- categorical bar and pie analyses;
- coefficient and aggregate meta-analysis plots;
- atomic grouped variants, plot composition, and local themes; and
- explicit classical, fixed-trim robust, and approved Bayesian modes where listed in the compatibility matrix.
The implementation is adapted rather than a drop-in port. It uses explicit column names, typed Python results, owned NumPy boundaries, and Matplotlib rendering. Unsupported modes fail explicitly; grouped operations do not return partial results.
Development
make setup
make check
make audit
make build
The default quality gate runs formatting, linting, strict type checking, the test suite, coverage enforcement, and documentation-link checks. Frozen R-oracle and benchmark evidence are verified by the normal tests; regenerating them is an explicit operation:
make oracle
make benchmark
See the documentation index for project plans, decisions, method specifications, and retained verification evidence.
Project identity and license
Plotsalot is an independent project and is not endorsed by or affiliated with
the ggstatsplot maintainers. The upstream project is used as a pinned behavioral
reference under the adaptation rules recorded in the repository.
Plotsalot is MIT licensed. See LICENSE and ADR-010 for the accepted distribution and upstream-notice rules. Report security concerns according to SECURITY.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plotsalot-1.0.0.tar.gz.
File metadata
- Download URL: plotsalot-1.0.0.tar.gz
- Upload date:
- Size: 819.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18638be65e7635e2527a7ed66af11be1846006d778c1c3c259f23a2429fb1502
|
|
| MD5 |
be92d3ef4c68bc5fec8adc1cff8b2ac9
|
|
| BLAKE2b-256 |
68dca6649392f5f632838e743c1062b3c57d44a83c8d6bb36fe00b1fe74764df
|
File details
Details for the file plotsalot-1.0.0-py3-none-any.whl.
File metadata
- Download URL: plotsalot-1.0.0-py3-none-any.whl
- Upload date:
- Size: 175.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df6b78a9dff0be407690783b48732cc86782eb1fda4ce4e40b291014c5cdca43
|
|
| MD5 |
8e009bd1c8400f5f7c2ee76dbcb62e5f
|
|
| BLAKE2b-256 |
1b63bdab2c4b182767fa4fe1394c55abe2764525bc23970e48e2c2830609c82f
|