remodify
Browse files
app.py
CHANGED
|
@@ -149,12 +149,6 @@ with gr.Blocks(title="India Growth Metrics Dashboard", theme=gr.themes.Soft()) a
|
|
| 149 |
value=metrics[0],
|
| 150 |
label="Select Metric"
|
| 151 |
)
|
| 152 |
-
|
| 153 |
-
time_series_city = gr.Dropdown(
|
| 154 |
-
choices=list(cities),
|
| 155 |
-
value=cities[0],
|
| 156 |
-
label="Select City for Time Series"
|
| 157 |
-
)
|
| 158 |
|
| 159 |
with gr.Row():
|
| 160 |
with gr.Column(scale=1):
|
|
@@ -189,47 +183,40 @@ with gr.Blocks(title="India Growth Metrics Dashboard", theme=gr.themes.Soft()) a
|
|
| 189 |
twin_cities = gr.Markdown(label="Twin Cities")
|
| 190 |
|
| 191 |
# Event handlers
|
| 192 |
-
def
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
)
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
def update_all_charts(cities, metric, ts_city):
|
| 206 |
-
bar_fig, radar_fig, corr_fig, cluster_fig, ai_md, twin_md = update_charts(cities, metric)
|
| 207 |
-
ts_fig = update_time_series(metric, ts_city)
|
| 208 |
return bar_fig, radar_fig, corr_fig, cluster_fig, ts_fig, ai_md, twin_md
|
| 209 |
-
|
|
|
|
|
|
|
|
|
|
| 210 |
# Connect inputs to outputs
|
| 211 |
city_selector.change(
|
| 212 |
-
fn=
|
| 213 |
inputs=[city_selector, metric_selector],
|
| 214 |
-
outputs=
|
| 215 |
)
|
| 216 |
|
| 217 |
metric_selector.change(
|
| 218 |
-
fn=
|
| 219 |
-
inputs=[city_selector, metric_selector
|
| 220 |
-
outputs=
|
| 221 |
-
)
|
| 222 |
-
|
| 223 |
-
time_series_city.change(
|
| 224 |
-
fn=update_time_series,
|
| 225 |
-
inputs=[metric_selector, time_series_city],
|
| 226 |
-
outputs=[time_series]
|
| 227 |
)
|
| 228 |
|
| 229 |
demo.load(
|
| 230 |
-
fn=
|
| 231 |
-
inputs=[city_selector, metric_selector
|
| 232 |
-
outputs=
|
| 233 |
)
|
| 234 |
|
| 235 |
# Launch the app
|
|
|
|
| 149 |
value=metrics[0],
|
| 150 |
label="Select Metric"
|
| 151 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
|
| 153 |
with gr.Row():
|
| 154 |
with gr.Column(scale=1):
|
|
|
|
| 183 |
twin_cities = gr.Markdown(label="Twin Cities")
|
| 184 |
|
| 185 |
# Event handlers
|
| 186 |
+
def update_all_outputs(selected_cities, selected_metric):
|
| 187 |
+
# Time series uses the first selected city
|
| 188 |
+
time_series_city = selected_cities[0] if selected_cities else None
|
| 189 |
+
|
| 190 |
+
bar_fig = create_bar_chart(selected_cities, selected_metric)
|
| 191 |
+
radar_fig = create_radar_chart(selected_cities)
|
| 192 |
+
corr_fig = create_correlation_matrix(selected_cities)
|
| 193 |
+
cluster_fig = create_cluster_view(selected_metric)
|
| 194 |
+
ai_md = generate_ai_insights(selected_cities)
|
| 195 |
+
twin_md = find_twin_cities(selected_cities)
|
| 196 |
+
ts_fig = create_time_series(selected_metric, time_series_city)
|
| 197 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
return bar_fig, radar_fig, corr_fig, cluster_fig, ts_fig, ai_md, twin_md
|
| 199 |
+
|
| 200 |
+
# A list of all outputs for convenience
|
| 201 |
+
all_outputs = [bar_chart, radar_chart, correlation_matrix, cluster_view, time_series, ai_insights, twin_cities]
|
| 202 |
+
|
| 203 |
# Connect inputs to outputs
|
| 204 |
city_selector.change(
|
| 205 |
+
fn=update_all_outputs,
|
| 206 |
inputs=[city_selector, metric_selector],
|
| 207 |
+
outputs=all_outputs
|
| 208 |
)
|
| 209 |
|
| 210 |
metric_selector.change(
|
| 211 |
+
fn=update_all_outputs,
|
| 212 |
+
inputs=[city_selector, metric_selector],
|
| 213 |
+
outputs=all_outputs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
)
|
| 215 |
|
| 216 |
demo.load(
|
| 217 |
+
fn=update_all_outputs,
|
| 218 |
+
inputs=[city_selector, metric_selector],
|
| 219 |
+
outputs=all_outputs
|
| 220 |
)
|
| 221 |
|
| 222 |
# Launch the app
|