3.2.0 - 2025-10-26¶
← Previous: 3.1.1 | Next: 3.2.1 → | 📋 All Releases | 🏷️ GitHub Release
Summary: Enhanced plotting capabilities with consistent color management, custom plotting kwargs support, and centralized I/O handling.
If upgrading from v2.x, see the v3.0.0 release notes and Migration Guide.
✨ Added¶
Color management: - setup_colors() method for CalculationResults and SegmentedCalculationResults to configure consistent colors across all plots - Group components by colorscales: results.setup_colors({'CHP': 'reds', 'Storage': 'blues', 'Greys': ['Grid', 'Demand']}) - Automatically propagates to all segments in segmented calculations - Colors persist across all plot calls unless explicitly overridden - Flexible color inputs: Supports colorscale names (e.g., 'turbo', 'plasma'), color lists, or label-to-color dictionaries - Cross-backend compatibility: Seamless color handling for both Plotly and Matplotlib
Plotting customization: - Plotting kwargs support: Pass additional arguments to plotting backends via px_kwargs, plot_kwargs, and backend_kwargs parameters - New CONFIG.Plotting configuration section: - default_show: Control default plot visibility - default_engine: Choose 'plotly' or 'matplotlib' - default_dpi: Set resolution for saved plots - default_facet_cols: Configure default faceting columns - default_sequential_colorscale: Default for heatmaps (now 'turbo') - default_qualitative_colorscale: Default for categorical plots (now 'plotly')
I/O improvements: - Centralized JSON/YAML I/O with auto-format detection - Enhanced NetCDF handling with consistent engine usage - Better numeric formatting in YAML exports
♻️ Changed¶
- Default colorscale: Changed from 'viridis' to 'turbo' for better perceptual uniformity
- Color terminology: Standardized from "colormap" to "colorscale" throughout for Plotly consistency
- Plotting internals: Now use
xr.Datasetas primary data type (DataFrames automatically converted) - NetCDF engine: Switched back to netcdf4 engine following xarray updates and performance benchmarks
🔥 Removed¶
- Removed unused
plotting.pie_with_plotly()method
🐛 Fixed¶
- Improved error messages when using
engine='matplotlib'with multidimensional data - Better dimension validation in
results.plot_heatmap()
📝 Docs¶
- Enhanced examples demonstrating
setup_colors()usage - Updated terminology from "colormap" to "colorscale" in docstrings
👷 Development¶
- Fixed concurrency issue in CI
- Centralized color processing logic into dedicated module
- Refactored to function-based color handling for simpler API
← Previous: 3.1.1 | Next: 3.2.1 → | 📋 All Releases | 🏷️ GitHub Release