hwostyle
Matplotlib style sheets and utilities for HWO direct imaging figures.
Installation
pip install hwostyle
For development:
git clone https://github.com/HabitableWorldsObservatory/hwostyle.git
cd hwostyle
pip install -e ".[dev,test]"
Quick Start
import hwostyle
# Switch to paper mode (white background, muted colors)
hwostyle.use("light")
# Switch to talk mode (black background, neon colors)
hwostyle.use("dark")
# Access the palette
colors = hwostyle.palette
colors.cyan # '#08F7FE' in dark, '#0097A7' in light
# Use domain-specific colormaps
cmap = hwostyle.cmaps.intensity # PSF images
cmap = hwostyle.cmaps.residual # difference maps
cmap = hwostyle.cmaps.phase # wavefront error
cmap = hwostyle.cmaps.statistic # signed statistics, SNR maps (PuOr)
# Brand roles: name the entity, not the color
hwostyle.roles.planet
hwostyle.roles.positive # certified claim
Modes
| Feature | Dark (Talks) | Light (Papers) | Barbie |
|---|---|---|---|
| Background | Black | White | White |
| Colors | Neon (high saturation) | Muted (print-safe) | RdPu pinks |
| Line width | 2.5 | 1.5 | 1.0 |
| Font | Sans-serif | Sans-serif | Serif |
| Image cmap | magma |
viridis |
RdPu |
Color Palette
| Name | Dark | Light |
|---|---|---|
| Cyan | #08F7FE |
#0097A7 |
| Pink | #FE53BB |
#C2185B |
| Yellow | #F5D300 |
#F9A825 |
| Green | #00FF41 |
#2E7D32 |
| Red | #FF0000 |
#D32F2F |
| Purple | #9467BD |
#7B1FA2 |
Roles
A role is what a plotted entity is; it resolves to one color per theme. Palette-backed roles follow the palette family; fixed roles keep their color in every family (paper and barbie use the light value).
| Role | Dark | Light | Use |
|---|---|---|---|
star |
yellow | yellow | stars |
planet, measured, data |
cyan | cyan | planets, measured data |
model, predicted, highlight |
pink | pink | model output, posterior draws |
reference |
green | green | reference curves |
disk, envelope |
purple | purple | disks, envelopes |
alert |
red | red | a wrong verdict, a warning |
prior |
purple | purple | prior curves |
positive |
#4C8DFF |
#1565C0 |
verdict: certified claim |
negative |
#FF8C1A |
#E65100 |
verdict: rejected claim |
posterior |
#B07A4F |
#8E5923 |
posterior curves (not model) |
truth |
#9A9A9A |
#757575 |
scenery and true values |
hwostyle.cmaps.statistic (PuOr) is the diverging map for signed statistics
and SNR maps; residual stays red-blue for difference images.
Barbie Palette
| Name | Hex |
|---|---|
| Blush | #FAA6B7 |
| Rose | #F768A1 |
| Magenta | #D42A92 |
| Berry | #9A017B |
| Plum | #5E006F |
Metadata
Release files for hwostyle 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hwostyle-1.6.0.tar.gz | 21.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hwostyle-1.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.9 kB
Release files / hwostyle-1.6.0.tar.gz
| Download URL | hwostyle-1.6.0.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ff06b3409416d045e2c02977d2f399f814a0b27c90b1f36110917c83b618112
|
|
BLAKE2b-256 checksum How to use checksums |
969989c91c568b1613a26d23522a14d9180ce80ae72f04af5c16635717baf79b
|
| 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 13, 2026.
Transparency logRelease files / hwostyle-1.6.0-py3-none-any.whl
| Download URL | hwostyle-1.6.0-py3-none-any.whl |
|---|---|
| Size | 20.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5e5637e0ed604bb8c6a5ac8252c00b471d3138997ffb9b48ddce98a1718e8e5
|
|
BLAKE2b-256 checksum How to use checksums |
64953517e574d690ef0558eaf757dc5297ec51bf0a22da3b910f265a26581cc2
|
| 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 13, 2026.
Transparency log