diff --git a/petab/v1/visualize/plotting.py b/petab/v1/visualize/plotting.py index 17db6d7d..8ff813a3 100644 --- a/petab/v1/visualize/plotting.py +++ b/petab/v1/visualize/plotting.py @@ -861,9 +861,15 @@ 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() - ids_per_plot = [[obs_id] for obs_id in unique_obs_list] + # each group_by category will be plotted on a separate plot + unique_ids_list = self._data_df[ + { + "dataset": DATASET_ID, + "observable": OBSERVABLE_ID, + "simulation": SIMULATION_CONDITION_ID, + }[group_by] + ].unique() + ids_per_plot = [[id_] for id_ in unique_ids_list] if group_by == "dataset" and DATASET_ID not in self._data_df: raise ValueError(