diff --git a/Orange/widgets/visualize/owscatterplot.py b/Orange/widgets/visualize/owscatterplot.py index d6720c7a34c..dd6f04ec11c 100644 --- a/Orange/widgets/visualize/owscatterplot.py +++ b/Orange/widgets/visualize/owscatterplot.py @@ -440,6 +440,9 @@ def handleNewSignals(self): self.attr_x, self.attr_y = self.attribute_selection_list[:2] self.attribute_selection_list = None super().handleNewSignals() + if self._domain_invalidated: + self.graph.update_axes() + self._domain_invalidated = False self._vizrank_color_change() @Inputs.features diff --git a/Orange/widgets/visualize/utils/widget.py b/Orange/widgets/visualize/utils/widget.py index 84ebd6767b8..27d68f1193c 100644 --- a/Orange/widgets/visualize/utils/widget.py +++ b/Orange/widgets/visualize/utils/widget.py @@ -393,6 +393,7 @@ def __init__(self): self.subset_indices = None self.__pending_selection = self.selection self._invalidated = True + self._domain_invalidated = True self.setup_gui() # GUI @@ -446,6 +447,10 @@ def set_data(self, data): self._invalidated = not ( data_existed and self.data is not None and array_equal(effective_data.X, self.effective_data.X)) + self._domain_invalidated = not ( + data_existed and self.data is not None and + effective_data.domain.checksum() + == self.effective_data.domain.checksum()) if self._invalidated: self.clear() self.enable_controls()