Update my_pages/multiverse.py
Browse files- my_pages/multiverse.py +5 -4
my_pages/multiverse.py
CHANGED
|
@@ -165,14 +165,14 @@ def render():
|
|
| 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
|
| 169 |
-
stage_nodes = [i for i,
|
| 170 |
if not stage_nodes:
|
| 171 |
continue
|
| 172 |
-
#
|
| 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 #
|
| 176 |
stage_label_traces.append(go.Scatter(
|
| 177 |
x=[x], y=[y],
|
| 178 |
text=[stage["label"]],
|
|
@@ -182,6 +182,7 @@ def render():
|
|
| 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])
|
|
|
|
| 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 |
+
# find all nodes belonging to this stage (x == stage_idx)
|
| 169 |
+
stage_nodes = [i for i, (x, y) in enumerate(positions) if x == float(stage_idx)]
|
| 170 |
if not stage_nodes:
|
| 171 |
continue
|
| 172 |
+
# max y among these 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 # offset above top node
|
| 176 |
stage_label_traces.append(go.Scatter(
|
| 177 |
x=[x], y=[y],
|
| 178 |
text=[stage["label"]],
|
|
|
|
| 182 |
showlegend=False
|
| 183 |
))
|
| 184 |
|
| 185 |
+
|
| 186 |
# --- Render figure ---
|
| 187 |
# fig = go.Figure(data=edge_traces + [node_trace])
|
| 188 |
fig = go.Figure(data=edge_traces + stage_label_traces + [node_trace])
|