idolezal commited on
Commit
4d6c6ba
·
1 Parent(s): d070060

Bokeh figure - change category according to the dropdown

Browse files
Files changed (2) hide show
  1. app.py +24 -6
  2. server.py +15 -5
app.py CHANGED
@@ -199,6 +199,10 @@ def submit_results(*inputs):
199
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
200
  visible=True,
201
  )
 
 
 
 
202
  submission_ids_and_titles = get_submission_ids_and_titles()
203
 
204
  return (
@@ -213,6 +217,7 @@ def submit_results(*inputs):
213
  gr.update(visible=False),
214
  leaderboard,
215
  leaderboard_csv,
 
216
  gr.update(visible=False),
217
  gr.update(choices=submission_ids_and_titles),
218
  gr.update(value=leaderboard_server.TASKS_CATEGORY_OVERALL),
@@ -324,11 +329,16 @@ def change_leaderboard_category(category, selected_submission_id):
324
  value=leaderboard_server.get_leaderboard_csv(category=category),
325
  visible=True,
326
  )
 
 
 
 
327
 
328
  return (
329
  leaderboard,
330
  leaderboard_csv,
331
  task_abbreviation_legend,
 
332
  tournament_results_title,
333
  tournament_results_dropdown,
334
  model_tournament_results_table,
@@ -431,11 +441,16 @@ def on_application_load():
431
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
432
  visible=True,
433
  )
 
 
 
 
434
  submission_ids_and_titles = get_submission_ids_and_titles()
435
 
436
  return (
437
  leaderboard,
438
  leaderboard_csv,
 
439
  gr.update(choices=submission_ids_and_titles),
440
  gr.update(value=leaderboard_server.TASKS_CATEGORY_OVERALL),
441
  gr.update(choices=submission_ids_and_titles),
@@ -654,12 +669,6 @@ def gradio_app():
654
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
655
  )
656
 
657
- with gr.Row():
658
- gr.Plot(
659
- value=leaderboard_server.get_bokeh_figure(),
660
- #label='Foo',
661
- )
662
-
663
  with gr.Row():
664
  leaderboard_table_legend = gr.DataFrame(
665
  value=None,
@@ -676,6 +685,12 @@ def gradio_app():
676
  elem_classes="leaderboard-table-legend",
677
  )
678
 
 
 
 
 
 
 
679
  with gr.Row():
680
  tournament_results_title = gr.Markdown(
681
  value="## Tournament results for selected model",
@@ -717,6 +732,7 @@ def gradio_app():
717
  leaderboard_table,
718
  leaderboard_table_csv,
719
  leaderboard_table_legend,
 
720
  tournament_results_title,
721
  tournament_results_dropdown,
722
  model_tournament_results_table,
@@ -972,6 +988,7 @@ def gradio_app():
972
  pre_submit_model_tournament_results_table_csv,
973
  leaderboard_table,
974
  leaderboard_table_csv,
 
975
  modal_submit,
976
  model_details_model_dropdown,
977
  leaderboard_category_of_tasks,
@@ -1040,6 +1057,7 @@ def gradio_app():
1040
  outputs=[
1041
  leaderboard_table,
1042
  leaderboard_table_csv,
 
1043
  model_details_model_dropdown,
1044
  leaderboard_category_of_tasks,
1045
  tournament_results_dropdown,
 
199
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
200
  visible=True,
201
  )
202
+ leaderboard_scatter_plot = gr.update(
203
+ value=leaderboard_server.get_bokeh_figure(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
204
+ visible=True,
205
+ )
206
  submission_ids_and_titles = get_submission_ids_and_titles()
207
 
208
  return (
 
217
  gr.update(visible=False),
218
  leaderboard,
219
  leaderboard_csv,
220
+ leaderboard_scatter_plot,
221
  gr.update(visible=False),
222
  gr.update(choices=submission_ids_and_titles),
223
  gr.update(value=leaderboard_server.TASKS_CATEGORY_OVERALL),
 
329
  value=leaderboard_server.get_leaderboard_csv(category=category),
330
  visible=True,
331
  )
332
+ leaderboard_scatter_plot = gr.update(
333
+ value=leaderboard_server.get_bokeh_figure(category=category),
334
+ visible=True,
335
+ )
336
 
337
  return (
338
  leaderboard,
339
  leaderboard_csv,
340
  task_abbreviation_legend,
341
+ leaderboard_scatter_plot,
342
  tournament_results_title,
343
  tournament_results_dropdown,
344
  model_tournament_results_table,
 
441
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
442
  visible=True,
443
  )
444
+ leaderboard_scatter_plot = gr.update(
445
+ value=leaderboard_server.get_bokeh_figure(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
446
+ visible=True,
447
+ )
448
  submission_ids_and_titles = get_submission_ids_and_titles()
449
 
450
  return (
451
  leaderboard,
452
  leaderboard_csv,
453
+ leaderboard_scatter_plot,
454
  gr.update(choices=submission_ids_and_titles),
455
  gr.update(value=leaderboard_server.TASKS_CATEGORY_OVERALL),
456
  gr.update(choices=submission_ids_and_titles),
 
669
  value=leaderboard_server.get_leaderboard_csv(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
670
  )
671
 
 
 
 
 
 
 
672
  with gr.Row():
673
  leaderboard_table_legend = gr.DataFrame(
674
  value=None,
 
685
  elem_classes="leaderboard-table-legend",
686
  )
687
 
688
+ with gr.Row():
689
+ leaderboard_scatter_plot = gr.Plot(
690
+ value=leaderboard_server.get_bokeh_figure(category=leaderboard_server.TASKS_CATEGORY_OVERALL),
691
+ label='Scatter plot',
692
+ )
693
+
694
  with gr.Row():
695
  tournament_results_title = gr.Markdown(
696
  value="## Tournament results for selected model",
 
732
  leaderboard_table,
733
  leaderboard_table_csv,
734
  leaderboard_table_legend,
735
+ leaderboard_scatter_plot,
736
  tournament_results_title,
737
  tournament_results_dropdown,
738
  model_tournament_results_table,
 
988
  pre_submit_model_tournament_results_table_csv,
989
  leaderboard_table,
990
  leaderboard_table_csv,
991
+ leaderboard_scatter_plot,
992
  modal_submit,
993
  model_details_model_dropdown,
994
  leaderboard_category_of_tasks,
 
1057
  outputs=[
1058
  leaderboard_table,
1059
  leaderboard_table_csv,
1060
+ leaderboard_scatter_plot,
1061
  model_details_model_dropdown,
1062
  leaderboard_category_of_tasks,
1063
  tournament_results_dropdown,
server.py CHANGED
@@ -622,7 +622,7 @@ class LeaderboardServer:
622
  dataframe.to_csv(filepath, index=False)
623
  return filepath
624
 
625
- def get_bokeh_figure(self):
626
  import numpy as np
627
  from analyze_winscore import get_ldb_records, create_scatter_plot_with_curve_with_variances_named
628
 
@@ -630,13 +630,18 @@ class LeaderboardServer:
630
  #tournament = self.tournament_results
631
  name_map = self.submission_id_to_model_title
632
 
633
- category = self.TASKS_CATEGORY_OVERALL
634
- csv_file_path = self.leaderboard_dataframes_csv[category]
 
635
  ldb_records = get_ldb_records(name_map, csv_file_path)
636
  categories = self.TASKS_CATEGORIES
637
  model_names = list(ldb_records.keys())
638
  sizes = [float(ldb_records[model]['# θ (B)']) for model in model_names]
639
- average_performance = [float(ldb_records[model]['Average ⬆️']) for model in model_names]
 
 
 
 
640
 
641
  variances={}
642
  for model, record in ldb_records.items():
@@ -647,8 +652,13 @@ class LeaderboardServer:
647
  print(min(variances.values()))
648
  variance_across_categories = variances
649
 
 
 
 
 
 
650
  fig = create_scatter_plot_with_curve_with_variances_named(
651
- 'Overall Duel Win Score',
652
  variance_across_categories,
653
  sizes,
654
  average_performance,
 
622
  dataframe.to_csv(filepath, index=False)
623
  return filepath
624
 
625
+ def get_bokeh_figure(self, pre_submit=None, category=None):
626
  import numpy as np
627
  from analyze_winscore import get_ldb_records, create_scatter_plot_with_curve_with_variances_named
628
 
 
630
  #tournament = self.tournament_results
631
  name_map = self.submission_id_to_model_title
632
 
633
+ category = category if category else self.TASKS_CATEGORY_OVERALL
634
+
635
+ csv_file_path = self.leaderboard_dataframes_csv[self.TASKS_CATEGORY_OVERALL]
636
  ldb_records = get_ldb_records(name_map, csv_file_path)
637
  categories = self.TASKS_CATEGORIES
638
  model_names = list(ldb_records.keys())
639
  sizes = [float(ldb_records[model]['# θ (B)']) for model in model_names]
640
+
641
+ if category in (self.TASKS_CATEGORY_OVERALL, self.TASKS_CATEGORY_OVERALL_DETAILS):
642
+ average_performance = [float(ldb_records[model]['Average ⬆️']) for model in model_names]
643
+ else:
644
+ average_performance = [float(ldb_records[model][category]) for model in model_names]
645
 
646
  variances={}
647
  for model, record in ldb_records.items():
 
652
  print(min(variances.values()))
653
  variance_across_categories = variances
654
 
655
+ if category in (self.TASKS_CATEGORY_OVERALL, self.TASKS_CATEGORY_OVERALL_DETAILS):
656
+ fig_y_axis_label = 'Overall Duel Win Score'
657
+ else:
658
+ fig_y_axis_label = f"{category} Duel Win Score"
659
+
660
  fig = create_scatter_plot_with_curve_with_variances_named(
661
+ fig_y_axis_label,
662
  variance_across_categories,
663
  sizes,
664
  average_performance,