Skip to content

Commit 0f44156

Browse files
committed
Added 2d plot option
1 parent baf0dde commit 0f44156

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

app/streamlit_app.py

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@
8989

9090
VD_SEED = 42
9191

92-
VD_DIM = 3
93-
9492
# S_* are reusable session stored objects
9593

9694
S_RESULTS = 'stored_results'
@@ -109,6 +107,7 @@ def __init__(self):
109107
self.df_summary = pd.DataFrame()
110108
self.mapper_graph = None
111109
self.mapper_plot = None
110+
self.mapper_dim = None
112111
self.mapper_fig = None
113112
self.mapper_fig_outdated = True
114113
self.auto_rendering = self._auto_rendering()
@@ -130,34 +129,37 @@ def set_df(self, X, y):
130129
self.df_summary = _get_data_summary(self.df_X, self.df_y)
131130
self.mapper_graph = None
132131
self.mapper_plot = None
132+
self.mapper_dim = None
133133
self.mapper_fig = None
134134
self.mapper_fig_outdated = True
135135
self.auto_rendering = self._auto_rendering()
136136

137137
def set_mapper(self, mapper_graph):
138138
self.mapper_graph = mapper_graph
139139
self.mapper_plot = None
140+
self.mapper_dim = None
140141
self.mapper_fig = None
141142
self.mapper_fig_outdated = True
142143
self.auto_rendering = self._auto_rendering()
143144

144-
def set_mapper_fig(self, seed, color_feat, agg, cmap, title):
145+
def set_mapper_fig(self, dim, seed, color_feat, agg, cmap, title):
145146
colors = self.X
146147
df_all = st.session_state[S_RESULTS].df_all
147148
if color_feat in df_all.columns:
148149
df_col = df_all[color_feat]
149150
colors = df_col.to_numpy()
150-
if self.mapper_plot is None:
151+
if (self.mapper_plot is None) or (dim != self.mapper_dim):
151152
self.mapper_plot = MapperLayoutInteractive(
152153
self.mapper_graph,
153-
dim=VD_DIM,
154+
dim=dim,
154155
seed=seed,
155156
colors=colors,
156157
agg=agg,
157158
cmap=cmap,
158159
title=title,
159160
height=500,
160161
width=500)
162+
self.mapper_dim = dim
161163
else:
162164
self.mapper_plot.update(
163165
seed=seed,
@@ -169,6 +171,13 @@ def set_mapper_fig(self, seed, color_feat, agg, cmap, title):
169171
self.mapper_fig.update_layout(
170172
uirevision='constant',
171173
margin=dict(b=0, l=0, r=0, t=0))
174+
self.mapper_fig.update_xaxes(
175+
#constrain='domain',
176+
showline=False)
177+
self.mapper_fig.update_yaxes(
178+
showline=False,
179+
scaleanchor='x',
180+
scaleratio = 1)
172181
self.mapper_fig_outdated = False
173182

174183

@@ -289,8 +298,8 @@ def _update_mapper(X, lens, cover, clustering):
289298
st.toast('Automatic Rendering Disabled: Graph Too Large', icon='⚠️')
290299

291300

292-
def _update_fig(seed, color_feat, agg, cmap, title):
293-
st.session_state[S_RESULTS].set_mapper_fig(seed, color_feat, agg, cmap, title)
301+
def _update_fig(dim, seed, color_feat, agg, cmap, title):
302+
st.session_state[S_RESULTS].set_mapper_fig(dim, seed, color_feat, agg, cmap, title)
294303
st.toast('Successfully Rendered Graph', icon='🖌️')
295304

296305

@@ -433,6 +442,15 @@ def _mapper_aggregation():
433442
return agg, agg_name
434443

435444

445+
def _mapper_dim():
446+
toggle_3d = st.toggle(
447+
'3D Rendering',
448+
value=True,
449+
on_change=_update_mapper_fig_outdated)
450+
dim = 3 if toggle_3d else 2
451+
return dim
452+
453+
436454
def _mapper_seed():
437455
seed = st.number_input(
438456
'🎲 Seed',
@@ -612,6 +630,7 @@ def mapper_color_section():
612630

613631

614632
def mapper_draw_section(color_feat):
633+
dim = _mapper_dim()
615634
seed = _mapper_seed()
616635
cmap = _mapper_cmap()
617636
agg, agg_name = _mapper_aggregation()
@@ -624,9 +643,9 @@ def mapper_draw_section(color_feat):
624643
auto_rendering = st.session_state[S_RESULTS].auto_rendering
625644
title = f'{agg_name} of {color_feat}'
626645
if auto_rendering and mapper_fig_outdated:
627-
_update_fig(seed, color_feat, agg, cmap, title)
646+
_update_fig(dim, seed, color_feat, agg, cmap, title)
628647
elif update_button:
629-
_update_fig(seed, color_feat, agg, cmap, title)
648+
_update_fig(dim, seed, color_feat, agg, cmap, title)
630649

631650

632651
def data_summary_section():

0 commit comments

Comments
 (0)