Update my_pages/multiverse.py
Browse files- my_pages/multiverse.py +23 -2
my_pages/multiverse.py
CHANGED
|
@@ -54,7 +54,7 @@ def build_tree_and_trace_path(selected_path, spread_factor=500):
|
|
| 54 |
next_nodes = []
|
| 55 |
|
| 56 |
# scaling: huge spread at stage 1, tapering off deeper
|
| 57 |
-
scale = spread_factor ** (1.0 / stage_idx)
|
| 58 |
|
| 59 |
for parent_order, parent_idx in enumerate(prev_nodes):
|
| 60 |
px, py = node_positions[parent_idx]
|
|
@@ -162,8 +162,29 @@ def render():
|
|
| 162 |
hoverinfo='none'
|
| 163 |
))
|
| 164 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
# --- Render figure ---
|
| 166 |
-
fig = go.Figure(data=edge_traces + [node_trace])
|
|
|
|
| 167 |
fig.update_layout(
|
| 168 |
showlegend=False,
|
| 169 |
xaxis=dict(visible=False),
|
|
|
|
| 54 |
next_nodes = []
|
| 55 |
|
| 56 |
# scaling: huge spread at stage 1, tapering off deeper
|
| 57 |
+
scale = spread_factor ** (1.0 / stage_idx**(0.5))
|
| 58 |
|
| 59 |
for parent_order, parent_idx in enumerate(prev_nodes):
|
| 60 |
px, py = node_positions[parent_idx]
|
|
|
|
| 162 |
hoverinfo='none'
|
| 163 |
))
|
| 164 |
|
| 165 |
+
# --- Add stage labels at the top of each layer ---
|
| 166 |
+
stage_label_traces = []
|
| 167 |
+
for stage_idx, stage in enumerate(choices_list, start=1):
|
| 168 |
+
# all nodes in this stage
|
| 169 |
+
stage_nodes = [i for i, s in enumerate(range(len(positions))) if i < len(node_stage) and node_stage[i] == stage_idx]
|
| 170 |
+
if not stage_nodes:
|
| 171 |
+
continue
|
| 172 |
+
# find vertical max position among this stage's nodes
|
| 173 |
+
max_y = max(positions[i][1] for i in stage_nodes)
|
| 174 |
+
x = float(stage_idx)
|
| 175 |
+
y = max_y + 0.2 * spread_factor # small offset above top node
|
| 176 |
+
stage_label_traces.append(go.Scatter(
|
| 177 |
+
x=[x], y=[y],
|
| 178 |
+
text=[stage["label"]],
|
| 179 |
+
mode="text",
|
| 180 |
+
textfont=dict(size=16, color="white"),
|
| 181 |
+
hoverinfo="none",
|
| 182 |
+
showlegend=False
|
| 183 |
+
))
|
| 184 |
+
|
| 185 |
# --- Render figure ---
|
| 186 |
+
# fig = go.Figure(data=edge_traces + [node_trace])
|
| 187 |
+
fig = go.Figure(data=edge_traces + stage_label_traces + [node_trace])
|
| 188 |
fig.update_layout(
|
| 189 |
showlegend=False,
|
| 190 |
xaxis=dict(visible=False),
|