juan-all-hands commited on
Commit
e213b7f
·
1 Parent(s): 54e4361

Fix logo/label zoom sync in scatter plots (#4)

Browse files

- Add 'Show all labels' toggle for scatter plots (261c66b829897ea5a0a9d3e6ccb946465e485471)
- Fix logo zoom behavior in scatter plots (d64aeca239902b50b48c88e8b3fc0d91f904d4a0)
- Fix logo/label zoom sync - use same y coords as labels (04932e5361cc72a2a0455f5db0709f81fdb49627)
- Resolve merge conflict - keep data coords for logos (9a7549466e87c84b85c0f49f051b940098dc9af2)

Files changed (1) hide show
  1. leaderboard_transformer.py +15 -13
leaderboard_transformer.py CHANGED
@@ -1274,32 +1274,34 @@ def _plot_scatter_plotly(
1274
 
1275
  if harness_uri is not None:
1276
  # Composite: stack model on top, harness on bottom
1277
- # Use "paper" yref so offset stays relative when zooming
1278
- model_y_domain = min(1, domain_y + STACKED_Y_OFFSET)
1279
- harness_y_domain = max(0, domain_y - STACKED_Y_OFFSET)
1280
  layout_images.append(dict(
1281
  source=model_logo_uri,
1282
- xref="x", yref="paper",
1283
- x=x_log, y=model_y_domain,
1284
- sizex=STACKED_SIZE_X, sizey=STACKED_SIZE_Y,
 
1285
  xanchor="center", yanchor="middle",
1286
  layer="above",
1287
  ))
1288
  layout_images.append(dict(
1289
  source=harness_uri,
1290
- xref="x", yref="paper",
1291
- x=x_log, y=harness_y_domain,
1292
- sizex=STACKED_SIZE_X, sizey=STACKED_SIZE_Y,
 
1293
  xanchor="center", yanchor="middle",
1294
  layer="above",
1295
  ))
1296
  else:
1297
- # Single marker - use "paper" yref so logo moves with x zoom but stays in relative y position
1298
  layout_images.append(dict(
1299
  source=model_logo_uri,
1300
- xref="x", yref="paper",
1301
- x=x_log, y=domain_y,
1302
- sizex=SINGLE_SIZE_X, sizey=SINGLE_SIZE_Y,
 
1303
  xanchor="center", yanchor="middle",
1304
  layer="above",
1305
  ))
 
1274
 
1275
  if harness_uri is not None:
1276
  # Composite: stack model on top, harness on bottom
1277
+ # Use data coordinates (x, y) so logos zoom/pan together with labels
1278
+ y_offset = 0.8 # Offset above the data point (in score units)
 
1279
  layout_images.append(dict(
1280
  source=model_logo_uri,
1281
+ xref="x", yref="y",
1282
+ x=x_log, y=y_val + y_offset,
1283
+ sizex=STACKED_SIZE_X * (x_max_log - x_min_log),
1284
+ sizey=STACKED_SIZE_Y * (y_max - y_min),
1285
  xanchor="center", yanchor="middle",
1286
  layer="above",
1287
  ))
1288
  layout_images.append(dict(
1289
  source=harness_uri,
1290
+ xref="x", yref="y",
1291
+ x=x_log, y=y_val - y_offset,
1292
+ sizex=STACKED_SIZE_X * (x_max_log - x_min_log),
1293
+ sizey=STACKED_SIZE_Y * (y_max - y_min),
1294
  xanchor="center", yanchor="middle",
1295
  layer="above",
1296
  ))
1297
  else:
1298
+ # Single marker - use data coordinates so logo zooms/pans with labels
1299
  layout_images.append(dict(
1300
  source=model_logo_uri,
1301
+ xref="x", yref="y",
1302
+ x=x_log, y=y_val,
1303
+ sizex=SINGLE_SIZE_X * (x_max_log - x_min_log),
1304
+ sizey=SINGLE_SIZE_Y * (y_max - y_min),
1305
  xanchor="center", yanchor="middle",
1306
  layer="above",
1307
  ))