@@ -310,16 +310,10 @@ def set_data(self, data):
310310 if self .matrix is not None and data is not None and len (self .matrix ) == len (data ):
311311 self .closeContext ()
312312 self .data = data
313+ self .init_attr_values ()
313314 self .openContext (data )
314315 else :
315316 self ._invalidated = True
316- if data is not None :
317- self ._primitive_metas = tuple (a for a in data .domain .metas if a .is_primitive ())
318- keys = [k for k , a in enumerate (data .domain .metas ) if a .is_primitive ()]
319- self ._data_metas = data .metas [:, keys ]
320- else :
321- self ._primitive_metas = ()
322- self ._data_metas = None
323317
324318 @Inputs .distances
325319 def set_disimilarity (self , matrix ):
@@ -653,12 +647,19 @@ def connect_pairs(self):
653647 def _setup_plot (self , new = False ):
654648 emb_x , emb_y = self .embedding [:, 0 ], self .embedding [:, 1 ]
655649 coords = np .vstack ((emb_x , emb_y )).T
650+
651+ data = self .data
652+
653+ primitive_metas = tuple (a for a in data .domain .metas if a .is_primitive ())
654+ keys = [k for k , a in enumerate (data .domain .metas ) if a .is_primitive ()]
655+ data_metas = data .metas [:, keys ]
656+
656657 attributes = self .data .domain .attributes + (self .variable_x , self .variable_y ) + \
657- self . _primitive_metas
658+ primitive_metas
658659 domain = Domain (attributes = attributes ,
659660 class_vars = self .data .domain .class_vars )
660- if self . _data_metas is not None :
661- data_x = (self .data .X , coords , self . _data_metas )
661+ if data_metas is not None :
662+ data_x = (self .data .X , coords , data_metas )
662663 else :
663664 data_x = (self .data .X , coords )
664665 data = Table .from_numpy (domain , X = np .hstack (data_x ),
0 commit comments