Jellyfish042 commited on
Commit
de4a2e5
·
1 Parent(s): 77d0c84
Files changed (1) hide show
  1. app.py +26 -14
app.py CHANGED
@@ -407,18 +407,24 @@ def calculate_fit_delta_percent(x_values, y_values, params):
407
 
408
  def create_fit_delta_colorscale(cmin, cmax):
409
  if cmax <= 0:
410
- return [[0.0, FIT_RESIDUAL_GOOD_COLOR], [1.0, FIT_RESIDUAL_NEUTRAL_COLOR]]
411
  if cmin >= 0:
412
- return [[0.0, FIT_RESIDUAL_NEUTRAL_COLOR], [1.0, FIT_RESIDUAL_BAD_COLOR]]
413
 
414
- zero_position = (0 - cmin) / (cmax - cmin)
 
 
415
  return [
416
- [0.0, FIT_RESIDUAL_GOOD_COLOR],
417
  [zero_position, FIT_RESIDUAL_NEUTRAL_COLOR],
418
- [1.0, FIT_RESIDUAL_BAD_COLOR],
419
  ]
420
 
421
 
 
 
 
 
422
  def create_fit_delta_coloraxis(delta_values):
423
  finite_values = [float(v) for v in delta_values if np.isfinite(v)]
424
  if not finite_values:
@@ -438,11 +444,17 @@ def create_fit_delta_coloraxis(delta_values):
438
  cmin = min(cmin, 0.0)
439
  cmax = max(cmax, 0.0)
440
 
 
441
  return dict(
442
  colorscale=create_fit_delta_colorscale(cmin, cmax),
443
- cmin=cmin,
444
- cmax=cmax,
445
- colorbar=dict(title="vs fit (%)", ticksuffix="%"),
 
 
 
 
 
446
  )
447
 
448
 
@@ -774,7 +786,7 @@ def create_scaling_plot(data_manager: DataManager, period: str, use_pareto: bool
774
  y=list(base_y_values),
775
  mode="markers",
776
  name="Non-Pareto Models" if use_pareto else "All Models",
777
- marker=dict(size=12, color=list(base_delta_values), coloraxis="coloraxis", opacity=0.85),
778
  text=list(base_names),
779
  customdata=list(zip(base_x_values, base_y_values, base_delta_values)),
780
  hovertemplate=(
@@ -798,7 +810,7 @@ def create_scaling_plot(data_manager: DataManager, period: str, use_pareto: bool
798
  name="Pareto Frontier",
799
  marker=dict(
800
  size=14,
801
- color=pareto_delta_values,
802
  coloraxis="coloraxis",
803
  symbol="diamond",
804
  opacity=1.0,
@@ -987,7 +999,7 @@ def create_category_scaling_plot(
987
  y=list(base_y_vals),
988
  mode="markers",
989
  name=f"{datasets_label} (Non-Pareto)" if use_pareto else datasets_label,
990
- marker=dict(size=12, color=list(base_delta_vals), coloraxis="coloraxis", opacity=0.85),
991
  text=list(base_name_vals),
992
  customdata=list(zip(base_x_vals, base_y_vals, base_delta_vals)),
993
  hovertemplate=(
@@ -1011,7 +1023,7 @@ def create_category_scaling_plot(
1011
  name="Pareto Frontier",
1012
  marker=dict(
1013
  size=14,
1014
- color=pareto_delta_vals,
1015
  coloraxis="coloraxis",
1016
  symbol="diamond",
1017
  opacity=1.0,
@@ -1105,7 +1117,7 @@ def create_category_scaling_plot(
1105
  y=list(base_y_vals),
1106
  mode="markers",
1107
  name=f"{dataset} (Non-Pareto)" if use_pareto else f"{dataset}",
1108
- marker=dict(size=10, color=list(base_delta_vals), coloraxis="coloraxis", opacity=0.8),
1109
  text=list(base_name_vals),
1110
  customdata=list(zip(base_x_vals, base_y_vals, base_delta_vals)),
1111
  hovertemplate=(
@@ -1130,7 +1142,7 @@ def create_category_scaling_plot(
1130
  name=f"{dataset} (Pareto)",
1131
  marker=dict(
1132
  size=12,
1133
- color=pareto_delta_vals,
1134
  coloraxis="coloraxis",
1135
  symbol="diamond",
1136
  opacity=1.0,
 
407
 
408
  def create_fit_delta_colorscale(cmin, cmax):
409
  if cmax <= 0:
410
+ return [[0.0, FIT_RESIDUAL_NEUTRAL_COLOR], [1.0, FIT_RESIDUAL_GOOD_COLOR]]
411
  if cmin >= 0:
412
+ return [[0.0, FIT_RESIDUAL_BAD_COLOR], [1.0, FIT_RESIDUAL_NEUTRAL_COLOR]]
413
 
414
+ mapped_cmin = -cmax
415
+ mapped_cmax = -cmin
416
+ zero_position = (0 - mapped_cmin) / (mapped_cmax - mapped_cmin)
417
  return [
418
+ [0.0, FIT_RESIDUAL_BAD_COLOR],
419
  [zero_position, FIT_RESIDUAL_NEUTRAL_COLOR],
420
+ [1.0, FIT_RESIDUAL_GOOD_COLOR],
421
  ]
422
 
423
 
424
+ def create_fit_delta_color_values(delta_values):
425
+ return [-float(v) if np.isfinite(v) else np.nan for v in delta_values]
426
+
427
+
428
  def create_fit_delta_coloraxis(delta_values):
429
  finite_values = [float(v) for v in delta_values if np.isfinite(v)]
430
  if not finite_values:
 
444
  cmin = min(cmin, 0.0)
445
  cmax = max(cmax, 0.0)
446
 
447
+ tick_values = np.linspace(cmax, cmin, 5)
448
  return dict(
449
  colorscale=create_fit_delta_colorscale(cmin, cmax),
450
+ cmin=-cmax,
451
+ cmax=-cmin,
452
+ colorbar=dict(
453
+ title="vs fit",
454
+ tickmode="array",
455
+ tickvals=[-float(v) for v in tick_values],
456
+ ticktext=[f"{float(v):+.1f}%" for v in tick_values],
457
+ ),
458
  )
459
 
460
 
 
786
  y=list(base_y_values),
787
  mode="markers",
788
  name="Non-Pareto Models" if use_pareto else "All Models",
789
+ marker=dict(size=12, color=create_fit_delta_color_values(base_delta_values), coloraxis="coloraxis", opacity=0.85),
790
  text=list(base_names),
791
  customdata=list(zip(base_x_values, base_y_values, base_delta_values)),
792
  hovertemplate=(
 
810
  name="Pareto Frontier",
811
  marker=dict(
812
  size=14,
813
+ color=create_fit_delta_color_values(pareto_delta_values),
814
  coloraxis="coloraxis",
815
  symbol="diamond",
816
  opacity=1.0,
 
999
  y=list(base_y_vals),
1000
  mode="markers",
1001
  name=f"{datasets_label} (Non-Pareto)" if use_pareto else datasets_label,
1002
+ marker=dict(size=12, color=create_fit_delta_color_values(base_delta_vals), coloraxis="coloraxis", opacity=0.85),
1003
  text=list(base_name_vals),
1004
  customdata=list(zip(base_x_vals, base_y_vals, base_delta_vals)),
1005
  hovertemplate=(
 
1023
  name="Pareto Frontier",
1024
  marker=dict(
1025
  size=14,
1026
+ color=create_fit_delta_color_values(pareto_delta_vals),
1027
  coloraxis="coloraxis",
1028
  symbol="diamond",
1029
  opacity=1.0,
 
1117
  y=list(base_y_vals),
1118
  mode="markers",
1119
  name=f"{dataset} (Non-Pareto)" if use_pareto else f"{dataset}",
1120
+ marker=dict(size=10, color=create_fit_delta_color_values(base_delta_vals), coloraxis="coloraxis", opacity=0.8),
1121
  text=list(base_name_vals),
1122
  customdata=list(zip(base_x_vals, base_y_vals, base_delta_vals)),
1123
  hovertemplate=(
 
1142
  name=f"{dataset} (Pareto)",
1143
  marker=dict(
1144
  size=12,
1145
+ color=create_fit_delta_color_values(pareto_delta_vals),
1146
  coloraxis="coloraxis",
1147
  symbol="diamond",
1148
  opacity=1.0,