Skip to content

Commit 8d09644

Browse files
committed
Scatter Plot: Replot when input attrs change
1 parent 5a57006 commit 8d09644

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

Orange/widgets/visualize/owscatterplot.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ def __init__(self):
358358
self.vizrank: ScatterPlotVizRank = None
359359
self.vizrank_button: QPushButton = None
360360
self.sampling: QGroupBox = None
361+
self._attrs_invalidated: bool = True
361362

362363
self.sql_data = None # Orange.data.sql.table.SqlTable
363364
self.attribute_selection_list = None # list of Orange.data.Variable
@@ -581,6 +582,8 @@ def handleNewSignals(self):
581582
self.attr_x, self.attr_y = self.attribute_selection_list[:2]
582583
self.attr_box.setEnabled(False)
583584
self.vizrank.setEnabled(False)
585+
self._invalidated = self._invalidated or self._attrs_invalidated
586+
self._attrs_invalidated = False
584587
super().handleNewSignals()
585588
if self._domain_invalidated:
586589
self.graph.update_axes()
@@ -591,7 +594,7 @@ def handleNewSignals(self):
591594
def set_shown_attributes(self, attributes):
592595
if attributes and len(attributes) >= 2:
593596
self.attribute_selection_list = attributes[:2]
594-
self._invalidated = self._invalidated \
597+
self._attrs_invalidated = self._attrs_invalidated \
595598
or self.attr_x != attributes[0] \
596599
or self.attr_y != attributes[1]
597600
else:

Orange/widgets/visualize/tests/test_owscatterplot.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,13 @@ def test_invalidated_same_time_features_first(self):
743743
self.widget.setup_plot.assert_called_once()
744744
self.assertListEqual(self.widget.effective_variables, list(features))
745745

746+
self.widget.setup_plot.reset_mock()
747+
features = self.data.domain.attributes[2:]
748+
signals = [(self.widget.Inputs.features, AttributeList(features)),
749+
(self.widget.Inputs.data, self.data)]
750+
self.send_signals(signals)
751+
self.widget.setup_plot.assert_called_once()
752+
746753
def test_invalidated_diff_features(self):
747754
self.widget.setup_plot = Mock()
748755
# send data and set default features

0 commit comments

Comments
 (0)