From 64084e749623c444d29523e546d2759ff6f68557 Mon Sep 17 00:00:00 2001 From: Samuel Northover-Naylor Date: Wed, 1 Apr 2026 15:56:40 +0100 Subject: [PATCH] Fix legend and alpha of exclusion periods in config timeline plot Fix duplicate legend entries and alpha of exclusion periods in analysis config timeline plot --- ...input_data_timeline_fig_all_exclusions.png | Bin 0 -> 77984 bytes tests/plots/test_input_data.py | 32 ++++++++ wind_up/plots/input_data.py | 75 ++++++++++++++---- 3 files changed, 91 insertions(+), 16 deletions(-) create mode 100644 tests/plots/baseline_images/test_input_data/input_data_timeline_fig_all_exclusions.png diff --git a/tests/plots/baseline_images/test_input_data/input_data_timeline_fig_all_exclusions.png b/tests/plots/baseline_images/test_input_data/input_data_timeline_fig_all_exclusions.png new file mode 100644 index 0000000000000000000000000000000000000000..e3d816e32e3aaa44f6a25fbae6096721cd76f50f GIT binary patch literal 77984 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 G9{(4|VVVB` literal 0 HcmV?d00001 diff --git a/tests/plots/test_input_data.py b/tests/plots/test_input_data.py index a248e49..f4ed2a3 100644 --- a/tests/plots/test_input_data.py +++ b/tests/plots/test_input_data.py @@ -211,3 +211,35 @@ def test_figsize(self, smarteole_assessment_inputs: AssessmentInputs) -> None: assessment_inputs.wf_df = pd.concat([assessment_inputs.wf_df, *dfs]) plot_input_data_timeline(assessment_inputs=assessment_inputs) + + @pytest.mark.slow + @pytest.mark.filterwarnings("ignore") + @image_comparison( + baseline_images=["input_data_timeline_fig_all_exclusions"], remove_text=False, extensions=["png"], style="mpl20" + ) + def test_no_duplicate_legend_entries( + self, + smarteole_assessment_inputs: AssessmentInputs, + ) -> None: + """Test that exclusion periods affecting 'all' turbines do not produce duplicate legend entries.""" + + assessment_inputs = copy.deepcopy(smarteole_assessment_inputs) + + assessment_inputs.cfg.yaw_data_exclusions_utc = [ + ("SMV1", pd.Timestamp("2020-03-01T00:00:00+0000"), pd.Timestamp("2020-03-03T00:00:00+0000")), + ("SMV4", pd.Timestamp("2020-04-02T00:00:00+0000"), pd.Timestamp("2020-05-20T00:00:00+0000")), + ("All", pd.Timestamp("2020-05-22T00:00:00+0000"), pd.Timestamp("2020-05-23T00:00:00+0000")), + ] + + assessment_inputs.cfg.exclusion_periods_utc = [ + ("SMV3", pd.Timestamp("2020-04-01T00:00:00+0000"), pd.Timestamp("2020-04-10T00:00:00+0000")), + ("SMV6", pd.Timestamp("2020-03-10T00:00:00+0000"), pd.Timestamp("2020-03-12T00:00:00+0000")), + ("all", pd.Timestamp("2020-03-14T00:00:00+0000"), pd.Timestamp("2020-03-15T00:00:00+0000")), + ] + + fig = plot_input_data_timeline(assessment_inputs) + + # Check there are no duplicate entries in the legend for the turbine subplot + ax_turbines = fig.axes[0] + _, labels = ax_turbines.get_legend_handles_labels() + assert len(labels) == len(set(labels)), f"Duplicate legend entries found: {labels}" diff --git a/wind_up/plots/input_data.py b/wind_up/plots/input_data.py index 72b7c98..4102a2f 100644 --- a/wind_up/plots/input_data.py +++ b/wind_up/plots/input_data.py @@ -45,24 +45,47 @@ def _validate_data_within_exclusions( logger.warning(_msg) -def _plot_exclusion( +def _plot_turbine_exclusion( *, y_value: int, - y_values: list[int], turbine_name: str, name_for_legend: str, exclusions: list[tuple[str, dt.datetime, dt.datetime]], trace_format: dict, ax: plt.Axes, + legend_already_added: set[str], ) -> None: - for _count, exclusion in enumerate(exclusions): - _name_for_legend = {"label": name_for_legend} if _count == 0 else {} + for exclusion in exclusions: + if exclusion[0] != turbine_name: + continue + _name_for_legend = {} + if name_for_legend not in legend_already_added: + _name_for_legend = {"label": name_for_legend} + legend_already_added.add(name_for_legend) left, right = exclusion[1], exclusion[2] - if exclusion[0] == turbine_name: - ax.barh(y_value, left=left, width=right - left, **trace_format, **_name_for_legend) # type: ignore[arg-type] - elif exclusion[0].lower() == "all": - for y in y_values: - ax.barh(y, left=left, width=right - left, **trace_format, **_name_for_legend) # type: ignore[arg-type] + ax.barh(y_value, left=left, width=right - left, **trace_format, **_name_for_legend) # type: ignore[arg-type] + + +def _plot_all_exclusion( + *, + y_values: list[int], + name_for_legend: str, + exclusions: list[tuple[str, dt.datetime, dt.datetime]], + trace_format: dict, + ax: plt.Axes, + legend_already_added: set[str], +) -> None: + for exclusion in exclusions: + if exclusion[0].lower() != "all": + continue + _name_for_legend = {} + if name_for_legend not in legend_already_added: + _name_for_legend = {"label": name_for_legend} + legend_already_added.add(name_for_legend) + left, right = exclusion[1], exclusion[2] + for y in y_values: + ax.barh(y, left=left, width=right - left, **trace_format, **_name_for_legend) # type: ignore[arg-type] + _name_for_legend = {} # only label the first bar def _plot_data_coverage( @@ -75,7 +98,7 @@ def _plot_data_coverage( ax.plot(column_data.index, column_data, color=color, linewidth=1, **_label) # type: ignore[arg-type] -def plot_input_data_timeline( +def plot_input_data_timeline( # noqa: PLR0915 assessment_inputs: AssessmentInputs, *, figsize: tuple[int, int] | None = None, @@ -125,6 +148,10 @@ def plot_input_data_timeline( gridspec_kw={"height_ratios": list(height_ratios)}, # type:ignore[arg-type] ) + legend_already_added: set[str] = set() + trace_fmt_general = {"height": 0.5, "color": "red", "alpha": 0.5} + trace_fmt_yaw = {"height": 0.5, "color": "black", "alpha": 0.5} + for y_value_count, t in enumerate(turbines): y_value = y_value_count + 1 @@ -159,29 +186,45 @@ def plot_input_data_timeline( ) # yaw exclusions - trace_fmt_yaw = {"height": 0.5, "color": "black", "alpha": 0.5} - _plot_exclusion( + _plot_turbine_exclusion( y_value=y_value, - y_values=y_values, turbine_name=t, name_for_legend="Yaw Exclusion Period", exclusions=_wu_cfg.yaw_data_exclusions_utc, trace_format=trace_fmt_yaw, ax=ax_turbines, + legend_already_added=legend_already_added, ) # general exclusions - trace_fmt_general = {"height": 0.5, "color": "red", "alpha": 0.5} - _plot_exclusion( + _plot_turbine_exclusion( y_value=y_value, - y_values=y_values, turbine_name=t, name_for_legend="Exclusion Period", exclusions=_wu_cfg.exclusion_periods_utc, trace_format=trace_fmt_general, ax=ax_turbines, + legend_already_added=legend_already_added, ) + # all exclusions (drawn once, outside turbine loop) + _plot_all_exclusion( + y_values=y_values, + name_for_legend="Yaw Exclusion Period", + exclusions=_wu_cfg.yaw_data_exclusions_utc, + trace_format=trace_fmt_yaw, + ax=ax_turbines, + legend_already_added=legend_already_added, + ) + _plot_all_exclusion( + y_values=y_values, + name_for_legend="Exclusion Period", + exclusions=_wu_cfg.exclusion_periods_utc, + trace_format=trace_fmt_general, + ax=ax_turbines, + legend_already_added=legend_already_added, + ) + # plot wind farm # --------------