From 86f6fb32c1028325dcd54c5d2a17157811e36e62 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Wed, 7 May 2025 15:03:00 +0200 Subject: [PATCH 1/2] If not providing "ids_per_plot" it automatically assumes that "groupy_by='observable'". This should be fixed by creating the ids_per_plot based on the selected groupy by. --- petab/v1/visualize/plotting.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/petab/v1/visualize/plotting.py b/petab/v1/visualize/plotting.py index 17db6d7d..27c4a69a 100644 --- a/petab/v1/visualize/plotting.py +++ b/petab/v1/visualize/plotting.py @@ -861,8 +861,14 @@ def parse_from_id_list( """ if ids_per_plot is None: # this is the default case. If no grouping is specified, - # all observables are plotted. One observable per plot. - unique_obs_list = self._data_df[OBSERVABLE_ID].unique() + # each group_by category will be plotted on a separate plot + unique_obs_list = self._data_df[ + { + "dataset": DATASET_ID, + "observable": OBSERVABLE_ID, + "simulation": SIMULATION_CONDITION_ID, + }[group_by] + ].unique() ids_per_plot = [[obs_id] for obs_id in unique_obs_list] if group_by == "dataset" and DATASET_ID not in self._data_df: From 9fa9045e8b16a7d82e6945b43214cd743dd1473f Mon Sep 17 00:00:00 2001 From: Paul Jonas Jost <70631928+PaulJonasJost@users.noreply.github.com> Date: Wed, 7 May 2025 17:28:08 +0200 Subject: [PATCH 2/2] Update petab/v1/visualize/plotting.py Co-authored-by: Daniel Weindl --- petab/v1/visualize/plotting.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/petab/v1/visualize/plotting.py b/petab/v1/visualize/plotting.py index 27c4a69a..8ff813a3 100644 --- a/petab/v1/visualize/plotting.py +++ b/petab/v1/visualize/plotting.py @@ -862,14 +862,14 @@ def parse_from_id_list( if ids_per_plot is None: # this is the default case. If no grouping is specified, # each group_by category will be plotted on a separate plot - unique_obs_list = self._data_df[ + unique_ids_list = self._data_df[ { "dataset": DATASET_ID, "observable": OBSERVABLE_ID, "simulation": SIMULATION_CONDITION_ID, }[group_by] ].unique() - ids_per_plot = [[obs_id] for obs_id in unique_obs_list] + ids_per_plot = [[id_] for id_ in unique_ids_list] if group_by == "dataset" and DATASET_ID not in self._data_df: raise ValueError(