diff --git a/Orange/widgets/visualize/owbarplot.py b/Orange/widgets/visualize/owbarplot.py index 9d9e9dcac54..45ec95eade6 100644 --- a/Orange/widgets/visualize/owbarplot.py +++ b/Orange/widgets/visualize/owbarplot.py @@ -572,7 +572,10 @@ def get_labels(self) -> Optional[Union[List, np.ndarray]]: elif not self.annot_var: return [] elif self.annot_var == self.enumeration: - return np.arange(1, len(self.data) + 1)[self.grouped_indices] + return [ + str(x) + for x in np.arange(1, len(self.data) + 1)[self.grouped_indices] + ] else: return [self.annot_var.str_val(row[self.annot_var]) for row in self.grouped_data] diff --git a/Orange/widgets/visualize/tests/test_owbarplot.py b/Orange/widgets/visualize/tests/test_owbarplot.py index 0ff75962a85..f3294b3bb19 100644 --- a/Orange/widgets/visualize/tests/test_owbarplot.py +++ b/Orange/widgets/visualize/tests/test_owbarplot.py @@ -137,6 +137,21 @@ def test_group_axis(self): self.assertFalse(group_axis.isVisible()) self.assertFalse(annot_axis.isVisible()) + def test_annotate_by_enumeration(self): + widget = self.widget + + self.send_signal(widget.Inputs.data, self.data) + combo = widget.controls.annot_var + for i in range(combo.count()): + try: + simulate.combobox_activate_index(combo, i) + except AssertionError: # skip disabled items + pass + else: + labels = widget.get_labels() + self.assertTrue(not labels + or all(isinstance(x, str) for x in labels)) + def test_datasets(self): controls = self.widget.controls for ds in datasets.datasets():