@@ -350,7 +350,6 @@ def set_subset_data(self, subset_data):
350350 # invalidate the pen/brush when the subset is changed
351351 self ._subset_mask = None # type: Optional[np.ndarray]
352352 self .controls .graph .alpha_value .setEnabled (subset_data is None )
353- self ._invalidated = True
354353
355354 def _clear (self ):
356355 self ._similar_pairs = None
@@ -574,10 +573,10 @@ def __invalidate_refresh(self):
574573
575574 def handleNewSignals (self ):
576575 if self ._invalidated :
576+ self .__draw_similar_pairs = False
577577 self ._invalidated = False
578578 self ._initialize ()
579579 self .start ()
580- self .__draw_similar_pairs = False
581580
582581 if self ._subset_mask is None and self .subset_data is not None and \
583582 self .data is not None :
@@ -591,7 +590,7 @@ def _invalidate_output(self):
591590
592591 def _on_connected_changed (self ):
593592 self ._similar_pairs = None
594- self ._update_plot ()
593+ self .connect_pairs ()
595594
596595 def _update_plot (self , new = False ):
597596 self ._clear_plot ()
@@ -602,6 +601,8 @@ def _update_plot(self, new=False):
602601 self .graph .new_data (None )
603602
604603 def connect_pairs (self ):
604+ if self ._curve :
605+ self .graph .plot_widget .removeItem (self ._curve )
605606 if not (self .connected_pairs and self .__draw_similar_pairs ):
606607 return
607608 emb_x , emb_y = self .graph .get_xy_data_positions (
@@ -637,8 +638,6 @@ def connect_pairs(self):
637638 pairs_mask = ~ (np .isclose (x1 , x2 ) & np .isclose (y1 , y2 ))
638639 emb_x_pairs = emb_x_pairs [pairs_mask , :]
639640 emb_y_pairs = emb_y_pairs [pairs_mask , :]
640- if self ._curve :
641- self .graph .plot_widget .removeItem (self ._curve )
642641 self ._curve = pg .PlotCurveItem (
643642 emb_x_pairs .ravel (), emb_y_pairs .ravel (),
644643 pen = pg .mkPen (0.8 , width = 2 , cosmetic = True ),
0 commit comments