3.1.0 - 2025-10-19¶
← Previous: 3.0.3 | Next: 3.1.1 → | 📋 All Releases | 🏷️ GitHub Release
Summary: This release adds faceting and animation support for multidimensional plots and redesigns the documentation website. Plotting results across scenarios or periods is now significantly simpler (Plotly only).
If upgrading from v2.x, see the Migration Guide and v3.0.0 release notes.
✨ Added¶
- Faceting and animation for multidimensional plots: All plotting methods now support
facet_byandanimate_byparameters to create subplot grids and animations from multidimensional data (scenarios, periods, etc.). Plotly only. - Flexible data selection with
selectparameter: Select data using single values, lists, slices, or index arrays for precise control over what gets plotted - Heatmap fill control: New
fillparameter in heatmap methods controls how missing values are filled after reshaping ('ffill'or'bfill') - Smart line styling for mixed variables: Area plots now automatically style variables containing both positive and negative values with dashed lines, while stacking purely positive or negative variables
♻️ Changed¶
- Breaking: Selection behavior: Plotting methods no longer automatically select the first value for non-time dimensions. Use the
selectparameter for explicit selection of scenarios, periods, or other dimensions - Better error messages: Enhanced error messages when using Matplotlib with multidimensional data, with clearer guidance on dimension requirements and suggestions to use Plotly
- Improved examples: Enhanced
scenario_example.pywith better demonstration of new features - Robust validation: Improved dimension validation in
plot_heatmap()with clearer error messages
🗑️ Deprecated¶
indexerparameter: Use the newselectparameter instead. Theindexerparameter will be removed in v4.0.0heatmap_timeframesandheatmap_timesteps_per_frameparameters: Use the newreshape_time=(timeframes, timesteps_per_frame)parameter instead in heatmap plotting methodscolor_mapparameter: Use the newcolorsparameter instead in heatmap plotting methods
🐛 Fixed¶
- Fixed cryptic errors when working with empty buses by adding proper validation
- Added early validation for non-existent periods when using linked periods with tuples
📝 Documentation¶
- Redesigned documentation website with custom css
👷 Development¶
- Renamed internal
_apply_indexer_to_data()to_apply_selection_to_data()for consistency with new API naming
← Previous: 3.0.3 | Next: 3.1.1 → | 📋 All Releases | 🏷️ GitHub Release