diff --git a/mlair/plotting/postprocessing_plotting.py b/mlair/plotting/postprocessing_plotting.py index e52c60f06f152908aec504f6725f67b9d3e6f1a0..10cde645eed44e440f5687d6b5498b5add3ea98d 100644 --- a/mlair/plotting/postprocessing_plotting.py +++ b/mlair/plotting/postprocessing_plotting.py @@ -694,13 +694,15 @@ class PlotCompetitiveSkillScore(AbstractPlotClass): calculated comparisons for cnn, persistence and ols. :param plot_folder: path to save the plot (default: current directory) :param model_setup: architecture type (default "CNN") + :param sampling: sampling of data (default "daily") used for legend """ - def __init__(self, data: pd.DataFrame, plot_folder=".", model_setup="NN"): + def __init__(self, data: pd.DataFrame, plot_folder=".", model_setup="NN", sampling="daily"): """Initialise.""" super().__init__(plot_folder, f"skill_score_competitive_{model_setup}") self._model_setup = model_setup + self._sampling = self._get_sampling(sampling) self._labels = None self._data = self._prepare_data(data) default_plot_name = self.plot_name @@ -734,7 +736,7 @@ class PlotCompetitiveSkillScore(AbstractPlotClass): data = data.rename({"stations_level_0": "stations", "stations_level_1": "comparison"}) data = data.to_dataframe("data").unstack(level=1).swaplevel() data.columns = data.columns.levels[1] - self._labels = [str(i) + "d" for i in data.index.levels[1].values] + self._labels = [str(i) + self._sampling for i in data.index.levels[1].values] data = data.stack(level=0).reset_index(level=2, drop=True).reset_index(name="data") return data.astype({"comparison": str, "ahead": int, "data": float}) @@ -816,7 +818,8 @@ class PlotBootstrapSkillScore(AbstractPlotClass): """ - def __init__(self, data: Dict, plot_folder: str = ".", model_setup: str = "", separate_vars: List = None): + def __init__(self, data: Dict, plot_folder: str = ".", model_setup: str = "", separate_vars: List = None, + sampling="daily"): """ Set attributes and create plot. @@ -828,6 +831,7 @@ class PlotBootstrapSkillScore(AbstractPlotClass): super().__init__(plot_folder, f"skill_score_bootstrap_{model_setup}") if separate_vars is None: separate_vars = ['o3'] + self.sampling = sampling self._labels = None self._x_name = "boot_var" self._data = self._prepare_data(data) @@ -851,7 +855,8 @@ class PlotBootstrapSkillScore(AbstractPlotClass): data = helpers.dict_to_xarray(data, "station").sortby(self._x_name) new_boot_coords = self._return_vars_without_number_tag(data.coords['boot_var'].values, split_by='_', keep=1) data = data.assign_coords({'boot_var': new_boot_coords}) - self._labels = [str(i) + "d" for i in data.coords["ahead"].values] + sampling_code = self._get_sampling(self.sampling) + self._labels = [str(i) + sampling_code for i in data.coords["ahead"].values] if "station" not in data.dims: data = data.expand_dims("station") return data.to_dataframe("data").reset_index(level=[0, 1, 2])