lukiod commited on
Commit
3edbda0
·
1 Parent(s): 266eb11
Files changed (1) hide show
  1. app.py +24 -37
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 update_charts(cities, metric):
193
- return (
194
- create_bar_chart(cities, metric),
195
- create_radar_chart(cities),
196
- create_correlation_matrix(cities),
197
- create_cluster_view(metric),
198
- generate_ai_insights(cities),
199
- find_twin_cities(cities)
200
- )
201
-
202
- def update_time_series(metric, city):
203
- return create_time_series(metric, city)
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=update_charts,
213
  inputs=[city_selector, metric_selector],
214
- outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, ai_insights, twin_cities]
215
  )
216
 
217
  metric_selector.change(
218
- fn=update_all_charts,
219
- inputs=[city_selector, metric_selector, time_series_city],
220
- outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, time_series, ai_insights, twin_cities]
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=update_all_charts,
231
- inputs=[city_selector, metric_selector, time_series_city],
232
- outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, time_series, ai_insights, twin_cities]
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