Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -144,23 +144,24 @@ def generate_graph(investors, filtered_data):
|
|
144 |
)
|
145 |
|
146 |
node_x, node_y, node_text = [], [], []
|
147 |
-
node_color, node_size, node_hovertext = [], [], []
|
148 |
|
149 |
for node in G.nodes():
|
150 |
x, y = pos[node]
|
151 |
node_x.append(x)
|
152 |
node_y.append(y)
|
153 |
if node in investors:
|
154 |
-
node_text.append(
|
155 |
node_color.append(investor_color_map[node])
|
156 |
node_size.append(30)
|
157 |
node_hovertext.append(f"Investor: {node}")
|
|
|
158 |
else:
|
159 |
valuation = filtered_data.loc[filtered_data["Company"] == node, "Valuation_Billions"].values
|
160 |
industry = filtered_data.loc[filtered_data["Company"] == node, "Industry"].values
|
161 |
size = valuation[0] * 5 if len(valuation) > 0 and not pd.isnull(valuation[0]) else 15
|
162 |
node_size.append(max(size, 10))
|
163 |
-
node_text.append(
|
164 |
node_color.append("#a6d854")
|
165 |
hovertext = f"Company: {node}"
|
166 |
if len(industry) > 0 and not pd.isnull(industry[0]):
|
@@ -168,14 +169,17 @@ def generate_graph(investors, filtered_data):
|
|
168 |
if len(valuation) > 0 and not pd.isnull(valuation[0]):
|
169 |
hovertext += f"<br>Valuation: ${valuation[0]:.2f}B"
|
170 |
node_hovertext.append(hovertext)
|
|
|
171 |
|
172 |
node_trace = go.Scatter(
|
173 |
x=node_x,
|
174 |
y=node_y,
|
175 |
text=node_text,
|
176 |
-
|
|
|
177 |
hoverinfo='text',
|
178 |
hovertext=node_hovertext,
|
|
|
179 |
marker=dict(
|
180 |
showscale=False,
|
181 |
size=node_size,
|
@@ -197,8 +201,8 @@ def generate_graph(investors, filtered_data):
|
|
197 |
width=1200,
|
198 |
height=800,
|
199 |
autosize=True,
|
200 |
-
xaxis=
|
201 |
-
yaxis=
|
202 |
showlegend=False, # Hide the legend to maximize space
|
203 |
annotations=[
|
204 |
dict(
|
@@ -214,8 +218,10 @@ def generate_graph(investors, filtered_data):
|
|
214 |
# Gradio app
|
215 |
def app(selected_country, selected_industry, selected_company, selected_investors,
|
216 |
exclude_countries, exclude_industries, exclude_companies, exclude_investors):
|
217 |
-
investors, filtered_data = filter_investors(
|
218 |
-
|
|
|
|
|
219 |
if not investors:
|
220 |
return go.Figure()
|
221 |
graph = generate_graph(investors, filtered_data)
|
|
|
144 |
)
|
145 |
|
146 |
node_x, node_y, node_text = [], [], []
|
147 |
+
node_color, node_size, node_hovertext, node_textposition = [], [], [], []
|
148 |
|
149 |
for node in G.nodes():
|
150 |
x, y = pos[node]
|
151 |
node_x.append(x)
|
152 |
node_y.append(y)
|
153 |
if node in investors:
|
154 |
+
node_text.append(node) # Add investor labels
|
155 |
node_color.append(investor_color_map[node])
|
156 |
node_size.append(30)
|
157 |
node_hovertext.append(f"Investor: {node}")
|
158 |
+
node_textposition.append('top center')
|
159 |
else:
|
160 |
valuation = filtered_data.loc[filtered_data["Company"] == node, "Valuation_Billions"].values
|
161 |
industry = filtered_data.loc[filtered_data["Company"] == node, "Industry"].values
|
162 |
size = valuation[0] * 5 if len(valuation) > 0 and not pd.isnull(valuation[0]) else 15
|
163 |
node_size.append(max(size, 10))
|
164 |
+
node_text.append(node) # Add company labels
|
165 |
node_color.append("#a6d854")
|
166 |
hovertext = f"Company: {node}"
|
167 |
if len(industry) > 0 and not pd.isnull(industry[0]):
|
|
|
169 |
if len(valuation) > 0 and not pd.isnull(valuation[0]):
|
170 |
hovertext += f"<br>Valuation: ${valuation[0]:.2f}B"
|
171 |
node_hovertext.append(hovertext)
|
172 |
+
node_textposition.append('bottom center')
|
173 |
|
174 |
node_trace = go.Scatter(
|
175 |
x=node_x,
|
176 |
y=node_y,
|
177 |
text=node_text,
|
178 |
+
textposition=node_textposition,
|
179 |
+
mode='markers+text',
|
180 |
hoverinfo='text',
|
181 |
hovertext=node_hovertext,
|
182 |
+
textfont=dict(size=10), # Adjust label font size
|
183 |
marker=dict(
|
184 |
showscale=False,
|
185 |
size=node_size,
|
|
|
201 |
width=1200,
|
202 |
height=800,
|
203 |
autosize=True,
|
204 |
+
xaxis=dict(showgrid=False, zeroline=False, visible=False),
|
205 |
+
yaxis=dict(showgrid=False, zeroline=False, visible=False),
|
206 |
showlegend=False, # Hide the legend to maximize space
|
207 |
annotations=[
|
208 |
dict(
|
|
|
218 |
# Gradio app
|
219 |
def app(selected_country, selected_industry, selected_company, selected_investors,
|
220 |
exclude_countries, exclude_industries, exclude_companies, exclude_investors):
|
221 |
+
investors, filtered_data = filter_investors(
|
222 |
+
selected_country, selected_industry, selected_investors, selected_company,
|
223 |
+
exclude_countries, exclude_industries, exclude_companies, exclude_investors
|
224 |
+
)
|
225 |
if not investors:
|
226 |
return go.Figure()
|
227 |
graph = generate_graph(investors, filtered_data)
|