Changelog¶
Changelog¶
All notable changes to this project are documented here. Format follows Keep a Changelog.
[3.2.1] — 2026-05-25¶
Changed¶
- README and documentation index rewritten with PyPI/CI/docs badges, clearer RWTH-internal audience framing, and "Why rwthplots?" motivating paragraph.
pyproject.tomlupdated: SPDX license string,matplotlib>=3.7minimum (was incorrect>=3.10.9), full[project.urls]block, and PyPI classifiers.
Added¶
- GitHub Actions workflows:
ci.yml(pytest matrix 3.10–3.13),docs.yml(MkDocs gh-deploy on push to main),release.yml(test matrix + PyPI Trusted Publisher publish on version tag).
[3.2.0] — 2026-05-25¶
Added¶
_rreversed variants registered for all 38 colormaps at import time (e.g.loading_RWTH_r,thermal_RWTH_r), matching standard Matplotlib convention.
Changed¶
loading_RWTHredesigned: blue → white → yellow → red → bordeaux. Removed green and orange stops; a pale-blue bridge prevents the RGB green cast that arises from linear blue→yellow interpolation.thermal_RWTHredesigned as a blackbody/incandescence map: black → bordeaux → red → orange → yellow → white.climate_stripes.pynow downloads real DWD data for Nordrhein-Westfalen (area average, 1881–2025, 145 years) and computes anomalies relative to the 1961–1990 baseline.- Gallery images regenerated;
docs/images/colormaps.pngupdated.
Removed¶
heat_RWTHcolormap (blue → orange → white sequential).renewable_RWTHcolormap (black → orange → yellow → green).frequency_RWTHcolormap (blue → green → red diverging).styles_discovery.py(dead module; style loading is handled in__init__.py).
[3.1.1] — 2026-05-24¶
Added¶
- MkDocs Material documentation site with IAEW branding, full API reference, style sheet and colormap guides, and example gallery.
Changed¶
loading_RWTHcolormap starts from RWTH blue (unloaded) instead of green for better contrast at low loading values.- Climate stripes example uses RWTH blue / red with opacity only (no intermediate colours), matching the original Ed Hawkins design intent.
Fixed¶
- Cycler syntax in 22
.mplstylefiles changed from single-quoted to double-quoted strings for Matplotlib 3.10 compatibility. MANIFEST.inremoved (redundant withpyproject.tomlpackage-data)..DS_Storeremoved from repository; added to.gitignore.
[3.1.0] — 2026-05-24¶
Added¶
Colormaps (13 new, total 41)
- viridis_RWTH — violet → turquoise → may green → yellow perceptual gradient.
Inspired by RWTH-Colors (Philipp Simon Leibner, IFS RWTH Aachen, MIT).
- heat_RWTH — sequential: blue → orange → white.
- thermal_RWTH — cold-to-hot: petrol → turquoise → green → yellow.
- divergent_bm_RWTH — blue – white – magenta.
- divergent_gy_RWTH — green – white – yellow.
- Power-system colormaps:
- voltage_RWTH — symmetric red → orange → green → orange → red for
voltage deviations centred at the nominal value.
- loading_RWTH — green → yellow → orange → red → bordeaux for line /
transformer loading (0 % to overloaded).
- renewable_RWTH — black → orange → yellow → green for renewable fraction.
- frequency_RWTH — blue → green (nominal) → red for frequency deviation.
Colour sets
- rwth_cset() now accepts frmt='HEX'|'RGB'|'NRGB'.
Inspired by RWTH-Colors (Philipp Simon Leibner, IFS RWTH Aachen, MIT).
Utility functions (all accessible as rwthplots.<name>)
- save_figure(fig, path, formats, dpi) — multi-format export, auto-mkdir.
- context(*styles) — plt.style.context wrapper with auto-prefix expansion.
- check_accessibility(colors, types, threshold) — CVD simulation (Viénot-
Brettel-Mollon model) with delta-E reporting.
- pick_colors(n, colorset) — greedy farthest-point selection in CIELAB.
- list_presets() — dict of all set_size() preset names and pt widths.
- plot_color_palette() — 13 × 5 RWTH tint grid figure.
Inspired by RWTH-Colors (Philipp Simon Leibner, IFS RWTH Aachen, MIT).
Style sheets (10 new)
- rwth-dark — dark-background variant.
Inspired by RWTH-Colors (Philipp Simon Leibner, IFS RWTH Aachen, MIT).
- misc.colorblind — 6-colour CVD-safe RWTH cycle.
- journals.elsevier, journals.springer, journals.aps, journals.acm.
- size/ directory — 15 composable figure-geometry modifiers:
a4, a4-half, letter, letter-half, ieee-column, ieee-page,
nature-column, nature-page, science-column, elsevier-column,
elsevier-page, springer-column, aps-column, aps-page, acm-column.
set_size() presets — all 15 size-style names added to _PRESETS.
Examples
- climate_stripes.py — warming-stripes with divergent_RWTH.
- new_features_demo.py — walkthrough of all v3.1 features.
- power_systems_demo.py — voltage map, loading bars, frequency time series.
Changed¶
- Fallback warnings in
rwth_cmap()andrwth_cset()now usewarnings.warn()instead ofprint(). - All
rwth_cset()namedtuple types unified toRWTHColorset. _PRESETSinformatter.pylifted to module level.__all__added to__init__.py,cmap.py,formatter.py,utils.py.rwthplots.styles.sizeregistered as a style package.
Fixed¶
SyntaxWarning: invalid escape sequence '\s'informatter.pydocstring.turqoise_RWTHtypo corrected toturquoise_RWTHin colourmap namelist.lutparameter silently dropped forcontinuous_RWTH_discrete; fixed.mpl.colormaps.register()now called withforce=True.
[3.0.2] — prior release¶
- Fixed installation issue with pip.