77import pandas as pd
88import numpy as np
99import plotly .express as px
10- import plotly .graph_objects as go
1110
1211import networkx as nx
1312from networkx .readwrite .json_graph import adjacency_data
@@ -114,33 +113,6 @@ def __init__(self):
114113 self .mapper_fig_outdated = True
115114 self .auto_rendering = self ._auto_rendering ()
116115
117- def _init_fig (self ):
118- fig = go .Figure (
119- data = [go .Scatter3d (
120- x = [],
121- y = [],
122- z = [],
123- mode = 'markers' )])
124- fig .update_layout (
125- uirevision = 'constant' ,
126- scene = dict (
127- xaxis = dict (
128- showgrid = True ,
129- zeroline = True ,
130- showline = True ,
131- ticks = 'outside' ),
132- yaxis = dict (
133- showgrid = True ,
134- zeroline = True ,
135- showline = True ,
136- ticks = 'outside' ),
137- zaxis = dict (
138- showgrid = True ,
139- zeroline = True ,
140- showline = True ,
141- ticks = 'outside' )))
142- return fig
143-
144116 def _auto_rendering (self ):
145117 if self .mapper_graph is None :
146118 return False
@@ -164,19 +136,39 @@ def set_df(self, X, y):
164136
165137 def set_mapper (self , mapper_graph ):
166138 self .mapper_graph = mapper_graph
167- self .mapper_plot = MapperLayoutInteractive (
168- self .mapper_graph ,
169- dim = VD_DIM ,
170- height = 500 ,
171- width = 500 ,
172- colors = self .X ,
173- seed = VD_SEED )
139+ self .mapper_plot = None
174140 self .mapper_fig = None
175141 self .mapper_fig_outdated = True
176142 self .auto_rendering = self ._auto_rendering ()
177143
178- def set_mapper_fig (self , mapper_fig ):
179- self .mapper_fig = mapper_fig
144+ def set_mapper_fig (self , seed , color_feat , agg , cmap , title ):
145+ colors = self .X
146+ df_all = st .session_state [S_RESULTS ].df_all
147+ if color_feat in df_all .columns :
148+ df_col = df_all [color_feat ]
149+ colors = df_col .to_numpy ()
150+ if self .mapper_plot is None :
151+ self .mapper_plot = MapperLayoutInteractive (
152+ self .mapper_graph ,
153+ dim = VD_DIM ,
154+ seed = seed ,
155+ colors = colors ,
156+ agg = agg ,
157+ cmap = cmap ,
158+ title = title ,
159+ height = 500 ,
160+ width = 500 )
161+ else :
162+ self .mapper_plot .update (
163+ seed = seed ,
164+ colors = colors ,
165+ agg = agg ,
166+ cmap = cmap ,
167+ title = title )
168+ self .mapper_fig = self .mapper_plot .plot ()
169+ self .mapper_fig .update_layout (
170+ uirevision = 'constant' ,
171+ margin = dict (b = 0 , l = 0 , r = 0 , t = 0 ))
180172 self .mapper_fig_outdated = False
181173
182174
@@ -298,26 +290,7 @@ def _update_mapper(X, lens, cover, clustering):
298290
299291
300292def _update_fig (seed , color_feat , agg , cmap , title ):
301- mapper_plot = st .session_state [S_RESULTS ].mapper_plot
302- if mapper_plot is None :
303- return
304- X = st .session_state [S_RESULTS ].X
305- colors = X
306- df_all = st .session_state [S_RESULTS ].df_all
307- if color_feat in df_all .columns :
308- df_col = df_all [color_feat ]
309- colors = df_col .to_numpy ()
310- mapper_plot .update (
311- colors = colors ,
312- seed = seed ,
313- agg = agg ,
314- title = title ,
315- cmap = cmap )
316- mapper_fig = mapper_plot .plot ()
317- mapper_fig .update_layout (
318- uirevision = 'constant' ,
319- margin = dict (b = 0 , l = 0 , r = 0 , t = 0 ))
320- st .session_state [S_RESULTS ].set_mapper_fig (mapper_fig )
293+ st .session_state [S_RESULTS ].set_mapper_fig (seed , color_feat , agg , cmap , title )
321294 st .toast ('Successfully Rendered Graph' , icon = '🖌️' )
322295
323296
0 commit comments