PROTEUS Thermocline matplotlib theme: brand color cycles, phase colormaps, light + dark variants.
Project description
proteus-mpl
PROTEUS Thermocline matplotlib theme. Publication-grade figures whose colors, fonts, and surfaces match the slides, the website, and the docs.
Install
pip install proteus-mpl
From a checkout of the repository: pip install figures/proteus-mpl (or cd
into the folder and pip install .).
Use
import proteus_mpl
proteus_mpl.use() # light: Paper background — papers, light slides
# proteus_mpl.use("dark") # dark: Void background — dark slides, hero figures
# proteus_mpl.use("white") # light theme on pure white — journal pages
What you get
- Cycles — both neutral-first, so a single-series plot draws in ink
(light) / paper (dark) and magma stays a deliberate signal. Light
(
proteus_mpl.CYCLE, 9 colours): ink, magma, solar, verdant, ocean, tidal, outgassing, fog, azure; CVD worst-pair ΔE 15.7 (Machado 2009). Dark (CYCLE_DARK, 6 colours): paper, magma, solar, and light-safe tones; ΔE 16.8. Past the cycle, switch line style (solid/dashed/dotted/dash-dot) instead of adding hues, and keep legends on multi-series plots. - Accents —
COLORS["solar"](#E0A32E, the star) withCOLORS["solar_deep"](#C8860F) for gold fills or thin marks on light surfaces, andCOLORS["verdant"](#57A05C, the habitable endpoint). - Module domain colors —
proteus_mpl.DOMAINS["interior"]etc. Use these whenever a line is a module (SPIDER output → interior red, MORS → solar gold). Stable across every paper, talk, and diagram. - Colormaps —
proteus(sequential, Void→Paper; default for imshow / pcolormesh; the one ramp that survives greyscale reproduction),proteus_div(diverging, light midpoint — print-safe for anomalies/residuals),proteus_phase(the brand ramp, magma→void→ocean, dark midpoint — hero figures and dark slides)._rreversals registered. - Type — Instrument Sans labels, Spline Sans Mono available for ticks via
fontfamily="Spline Sans Mono"; titles bold, left-aligned. The OFL brand fonts ship inside the package and register automatically onuse(). - Publication settings — 300 dpi savefig, tight bbox, TrueType embedding
(fonttype 42), text-as-paths SVG. Prefer
fig.savefig("fig.pdf").
The cycle on each surface
Regenerate with python examples/cycle.py.
Conventions
- Size figures at final printed size (A&A column ≈ 3.5 in) and keep default font sizes — never shrink a huge figure down.
- Light figures on light surfaces, dark figures on dark — no visible card.
- Journal white pages:
use("white"), ortransparent=Trueat savefig. - Magma is the hot signal: reserve it for the series you want the room to look at. Everything else starts from Ocean.
Project details
Release history Release notifications | RSS feed
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 proteus_mpl-1.1.0.tar.gz.
File metadata
- Download URL: proteus_mpl-1.1.0.tar.gz
- Upload date:
- Size: 183.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd6df406f11122bbd27dcbf7112813c1339f4fe275fde4d199bd972235590d86
|
|
| MD5 |
00b27fa1fa9fa73d63ee65b8abd426f9
|
|
| BLAKE2b-256 |
67cfc504d148fabee31831fe301b8eefe4bdfe604df9c004887ab1eac5c4f9ad
|
Provenance
The following attestation bundles were made for proteus_mpl-1.1.0.tar.gz:
Publisher:
release.yml on FormingWorlds/proteus-visual-language
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
proteus_mpl-1.1.0.tar.gz -
Subject digest:
dd6df406f11122bbd27dcbf7112813c1339f4fe275fde4d199bd972235590d86 - Sigstore transparency entry: 2164824724
- Sigstore integration time:
-
Permalink:
FormingWorlds/proteus-visual-language@96f43c3c2574601e77b22b4dffb0cf0ce8116dc3 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/FormingWorlds
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@96f43c3c2574601e77b22b4dffb0cf0ce8116dc3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file proteus_mpl-1.1.0-py3-none-any.whl.
File metadata
- Download URL: proteus_mpl-1.1.0-py3-none-any.whl
- Upload date:
- Size: 180.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b81b84a606c1d4ae09c078b7d7fd4f76d3e4f5e151e7ddb58efca5e4ff0f40e
|
|
| MD5 |
14cdb0954bd18312e7335aeec1f38a9d
|
|
| BLAKE2b-256 |
038e9db079d087c474805401dc8acb9d9df6317631939b64f123b7e24b910035
|
Provenance
The following attestation bundles were made for proteus_mpl-1.1.0-py3-none-any.whl:
Publisher:
release.yml on FormingWorlds/proteus-visual-language
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
proteus_mpl-1.1.0-py3-none-any.whl -
Subject digest:
2b81b84a606c1d4ae09c078b7d7fd4f76d3e4f5e151e7ddb58efca5e4ff0f40e - Sigstore transparency entry: 2164824769
- Sigstore integration time:
-
Permalink:
FormingWorlds/proteus-visual-language@96f43c3c2574601e77b22b4dffb0cf0ce8116dc3 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/FormingWorlds
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@96f43c3c2574601e77b22b4dffb0cf0ce8116dc3 -
Trigger Event:
push
-
Statement type: