mgyigit commited on
Commit
01432f8
Β·
verified Β·
1 Parent(s): 6e1578c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -4
app.py CHANGED
@@ -115,7 +115,30 @@ def format_method(name: str) -> str:
115
  """Wrap a model name in a coloured <span> so Gradio renders it."""
116
  colour = color_dict.get(name, "black")
117
  return f"<span style='color:{colour}; font-weight:bold;'>{name}</span>"
118
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  # ------- Visualisation helpers ---------------------------------------------
120
 
121
 
@@ -222,13 +245,21 @@ with block:
222
 
223
  baseline_value = get_baseline_df(method_names, metric_names)
224
  baseline_value = baseline_value.applymap(lambda x: round(x, 4) if isinstance(x, (int, float)) else x)
225
- baseline_value['Method'] = baseline_value['Method'].apply(format_method)
226
  baseline_header = ["Method"] + metric_names
227
  baseline_datatype = ['markdown'] + ['number'] * len(metric_names)
228
-
 
 
 
 
 
 
 
 
229
  with gr.Row(show_progress=True, variant='panel'):
230
  data_component = gr.Dataframe(
231
- value=baseline_value,
232
  headers=baseline_header,
233
  type="pandas",
234
  datatype=baseline_datatype,
 
115
  """Wrap a model name in a coloured <span> so Gradio renders it."""
116
  colour = color_dict.get(name, "black")
117
  return f"<span style='color:{colour}; font-weight:bold;'>{name}</span>"
118
+
119
+ # ――― text colour for the Method column ―――
120
+ def style_method(val: str) -> str:
121
+ return f"color:{color_dict.get(val, 'black')}; font-weight:bold;"
122
+
123
+ # ――― background shading for the top-5 of a numeric column ―――
124
+ # darkest β†’ lightest
125
+ TOP5_GREENS = ["#006400", "#228B22", "#32CD32", "#7CFC00", "#ADFF2F"]
126
+
127
+ def highlight_top5(col: pd.Series) -> list[str]:
128
+ """Return a list of CSS strings for one numeric column."""
129
+ # ignore non-numeric cols
130
+ if not pd.api.types.is_numeric_dtype(col):
131
+ return [""] * len(col)
132
+
133
+ ranks = col.rank(ascending=False, method="first") # 1 = best
134
+ styles = []
135
+ for r in ranks:
136
+ if r <= 5:
137
+ styles.append(f"background-color:{TOP5_GREENS[int(r)-1]};")
138
+ else:
139
+ styles.append("")
140
+ return styles
141
+
142
  # ------- Visualisation helpers ---------------------------------------------
143
 
144
 
 
245
 
246
  baseline_value = get_baseline_df(method_names, metric_names)
247
  baseline_value = baseline_value.applymap(lambda x: round(x, 4) if isinstance(x, (int, float)) else x)
248
+ #baseline_value['Method'] = baseline_value['Method'].apply(format_method)
249
  baseline_header = ["Method"] + metric_names
250
  baseline_datatype = ['markdown'] + ['number'] * len(metric_names)
251
+
252
+ styler = (
253
+ baseline_value
254
+ .style
255
+ .applymap(style_method, subset=["Method"]) # text colours
256
+ .apply(highlight_top5, axis=0) # green shades
257
+ .format(precision=4) # keep tidy numbers
258
+ )
259
+
260
  with gr.Row(show_progress=True, variant='panel'):
261
  data_component = gr.Dataframe(
262
+ value=styler,
263
  headers=baseline_header,
264
  type="pandas",
265
  datatype=baseline_datatype,