Plotting#

Publication-ready matplotlib figures grouped by what they visualize. All functions write a PNG to a results directory and accept optional styling overrides.

Time series#

breos.plotting.plot_timeseries(df, columns, ...)

Plot multiple columns as time series.

breos.plotting.plot_monthly_balance(...)

Plot monthly energy balance with positive (PV, Export) and negative (Load, Import) bars.

breos.plotting.plot_monthly_comparison(...)

Compare PV production, load, import, and export by month.

breos.plotting.monthly_graphs(results_df, ...)

Create monthly aggregated bar charts.

breos.plotting.weekly_graphs(results_df, ...)

Create detailed weekly time series plot.

breos.plotting.yearly_graphs(results_df, ...)

Create yearly aggregated summary.

Cost and breakeven#

breos.plotting.plot_breakeven(...[, ...])

Plot break-even analysis: PV system vs no system accumulated costs.

breos.plotting.plot_breakeven_two(df1, ...)

Two-scenario break-even comparison with annotated crossover markers.

breos.plotting.plot_breakeven_comparison(...)

Multi-scenario break-even comparison: N cumulative cost curves vs No-System baseline.

breos.plotting.create_cost_plots(...[, ...])

Create cost projection visualization.

Battery degradation#

breos.plotting.plot_battery_soh_timeseries(...)

Time series plot of battery State of Health (SOH) over time.

breos.plotting.plot_resistance_and_efficiency(...)

Plot battery resistance growth and effective round-trip efficiency.

breos.plotting.plot_cell_temperature(...)

Plot monthly battery cell temperature statistics (min, mean, max).

breos.plotting.degradation_plots(...)

Create battery degradation visualization.

Tilt and azimuth optimization#

breos.plotting.plot_tilt_optimization(...[, ...])

Scatter plot of tilt optimization results.

breos.plotting.plot_azitilt_ew_1d(tilt_vals, ...)

1-D line plot of PV metric vs tilt for the East-West configuration.

breos.plotting.plot_azitilt_landscape_2d(...)

2-D scatter plot of the azimuth/tilt optimisation landscape (colour = metric).

breos.plotting.plot_azitilt_landscape_3d(...)

3-D surface plot of the azimuth/tilt optimisation landscape.

Pareto front#

breos.plotting.plot_pareto_front_analysis(df, ...)

2×2 grid of Pareto-front scatter plots, one panel per consumption level.

Sensitivity and Monte Carlo#

breos.plotting.plot_calendar_aging_sensitivity(...)

Plot SOH trajectories for different calendar aging k0 scaling factors.

breos.plotting.plot_temperature_sensitivity_comparison(...)

Show how BREOS lifetime varies across locations (temperature-dependent) while Polysun predicts the same lifetime everywhere (temperature-blind).

breos.plotting.plot_montecarlo_simulation(...)

Generate all plots for Monte Carlo simulation results.

breos.plotting.plot_montecarlo_npv_distribution(...)

Histogram of NPV savings across all MC runs.

breos.plotting.plot_montecarlo_grid_independence_distribution(...)

Histogram of grid independence across all MC runs.

breos.plotting.plot_montecarlo_final_soh_distribution(...)

Histogram of final battery state-of-health across one-row-per-run MC results.

Batch comparison#

breos.plotting.plot_grid_independence_heatmap(...)

Plot a heatmap of grid independence (or other metric) vs system size.

breos.plotting.plot_location_comparison_delta(...)

Plot a diverging heatmap of the difference in a metric between two locations.

CO2#

breos.plotting.plot_co2_savings(...[, ...])

Plot CO2 emissions avoided over system lifetime.

Weather visualization#

breos.plotting.plot_weather_annual_ghi_distribution(...)

Histogram of annual GHI values across historical years with TMY and mean lines.

breos.plotting.plot_weather_monthly_comparison(...)

Scatter+line monthly comparison: TMY vs historical mean with 95% CI band, red min-year line, and green max-year line.

Validation plots#

breos.plotting.plot_validation_parity(...[, ...])

Plot parity (predicted vs measured) with 1:1 line.

breos.plotting.plot_validation_residuals(...)

Plot residuals (measured - predicted) over time.

breos.plotting.plot_validation_soh_comparison(...)

Plot measured vs predicted SOH for degradation model validation.

breos.plotting.plot_validation_degradation_split(...)

Plot calendar vs cycle aging contribution over time as stacked area.

breos.plotting.plot_validation_multi_system(...)

Plot measured vs predicted SOH for multiple systems on one figure.

Presentation styling#

breos.plotting.set_presentation_mode([...])

Enable presentation mode with larger fonts for all plots.