Update app.py
Browse files
app.py
CHANGED
@@ -75,60 +75,54 @@ def create_plotly_graph(graph: nx.DiGraph) -> go.Figure:
|
|
75 |
edge_x.extend([x0, x1, None])
|
76 |
edge_y.extend([y0, y1, None])
|
77 |
|
78 |
-
# Create edge trace
|
79 |
edge_trace = go.Scatter(
|
80 |
x=edge_x,
|
81 |
y=edge_y,
|
82 |
-
line=dict(width=0
|
83 |
hoverinfo='none',
|
84 |
-
mode='lines'
|
|
|
85 |
)
|
86 |
|
87 |
-
# Node trace initialization
|
88 |
node_x, node_y, node_text, node_color = [], [], [], []
|
89 |
|
90 |
for node in graph.nodes():
|
91 |
x, y = pos[node]
|
92 |
node_x.append(x)
|
93 |
node_y.append(y)
|
94 |
-
node_text.append(
|
|
|
|
|
95 |
node_color.append(color_map[graph.nodes[node]['type']])
|
96 |
|
97 |
-
#
|
98 |
-
node_adjacencies = []
|
99 |
-
node_hover_texts = []
|
100 |
-
for node, adjacencies in enumerate(graph.adjacency()):
|
101 |
-
node_adjacencies.append(len(adjacencies[1]))
|
102 |
-
node_info = list(graph.nodes())[node]
|
103 |
-
node_data = graph.nodes[node_info]
|
104 |
-
hover_text = f"Node: {node_info}<br>Type: {node_data['type']}<br>{node_data.get('description', '')}"
|
105 |
-
node_hover_texts.append(hover_text)
|
106 |
-
|
107 |
-
# Create node trace
|
108 |
node_trace = go.Scatter(
|
109 |
x=node_x,
|
110 |
y=node_y,
|
111 |
-
text=
|
112 |
-
mode='markers+text'
|
113 |
hoverinfo='text',
|
114 |
marker=dict(
|
115 |
-
showscale=
|
116 |
-
colorscale='
|
117 |
reversescale=True,
|
118 |
-
color=
|
119 |
-
size=
|
120 |
line_width=2
|
121 |
-
)
|
|
|
122 |
)
|
123 |
|
124 |
-
# Create the figure and add traces
|
125 |
fig = go.Figure()
|
126 |
fig.add_trace(edge_trace)
|
127 |
fig.add_trace(node_trace)
|
128 |
fig.update_layout(
|
129 |
title='Your Educational Landscape',
|
130 |
-
titlefont_size=
|
131 |
-
showlegend=
|
132 |
hovermode='closest',
|
133 |
margin=dict(b=20, l=5, r=5, t=40),
|
134 |
annotations=[dict(
|
@@ -138,7 +132,8 @@ def create_plotly_graph(graph: nx.DiGraph) -> go.Figure:
|
|
138 |
x=0.005, y=-0.002
|
139 |
)],
|
140 |
xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
|
141 |
-
yaxis=dict(showgrid=False, zeroline=False, showticklabels=False)
|
|
|
142 |
)
|
143 |
|
144 |
return fig
|
|
|
75 |
edge_x.extend([x0, x1, None])
|
76 |
edge_y.extend([y0, y1, None])
|
77 |
|
78 |
+
# Create edge trace with improved style
|
79 |
edge_trace = go.Scatter(
|
80 |
x=edge_x,
|
81 |
y=edge_y,
|
82 |
+
line=dict(width=1.0, color='#888'),
|
83 |
hoverinfo='none',
|
84 |
+
mode='lines',
|
85 |
+
name="Edges"
|
86 |
)
|
87 |
|
88 |
+
# Node trace initialization with improved style
|
89 |
node_x, node_y, node_text, node_color = [], [], [], []
|
90 |
|
91 |
for node in graph.nodes():
|
92 |
x, y = pos[node]
|
93 |
node_x.append(x)
|
94 |
node_y.append(y)
|
95 |
+
node_text.append(
|
96 |
+
f"Node: {node}<br>Type: {graph.nodes[node]['type']}<br>{graph.nodes[node].get('description', '')}"
|
97 |
+
)
|
98 |
node_color.append(color_map[graph.nodes[node]['type']])
|
99 |
|
100 |
+
# Create node trace for hover interactivity
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
node_trace = go.Scatter(
|
102 |
x=node_x,
|
103 |
y=node_y,
|
104 |
+
text=node_text,
|
105 |
+
mode='markers', # Changed from 'markers+text' to 'markers' for hover only
|
106 |
hoverinfo='text',
|
107 |
marker=dict(
|
108 |
+
showscale=True,
|
109 |
+
colorscale='Viridis', # Updated to 'Viridis' for a more vibrant color scheme
|
110 |
reversescale=True,
|
111 |
+
color=node_color,
|
112 |
+
size=15, # Increased size for better visibility
|
113 |
line_width=2
|
114 |
+
),
|
115 |
+
name="Nodes"
|
116 |
)
|
117 |
|
118 |
+
# Create the figure and add traces with improved layout and style
|
119 |
fig = go.Figure()
|
120 |
fig.add_trace(edge_trace)
|
121 |
fig.add_trace(node_trace)
|
122 |
fig.update_layout(
|
123 |
title='Your Educational Landscape',
|
124 |
+
titlefont_size=20,
|
125 |
+
showlegend=True, # Show legend
|
126 |
hovermode='closest',
|
127 |
margin=dict(b=20, l=5, r=5, t=40),
|
128 |
annotations=[dict(
|
|
|
132 |
x=0.005, y=-0.002
|
133 |
)],
|
134 |
xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
|
135 |
+
yaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
|
136 |
+
plot_bgcolor='rgba(240, 240, 240, 0.95)' # Set a light background for better contrast
|
137 |
)
|
138 |
|
139 |
return fig
|