Skip to content

Commit baf0dde

Browse files
committed
Moved mapper construction logic inside state class
1 parent 821b8d5 commit baf0dde

File tree

1 file changed

+30
-57
lines changed

1 file changed

+30
-57
lines changed

app/streamlit_app.py

Lines changed: 30 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import pandas as pd
88
import numpy as np
99
import plotly.express as px
10-
import plotly.graph_objects as go
1110

1211
import networkx as nx
1312
from 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

300292
def _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

Comments
 (0)