figs: a5 vanilla->route arrows, equiv0->approx0, skip degenerate train_deploy, prune orphans

- a5_generalisation: connectors -> arrows (baseline->ours direction, shows the drop
  and the stdout solve-cost honestly).
- equiv0 -> approx0 everywhere: these are finite-sample estimates, not identically 0.
- plot_train_vs_deploy skips when train==deploy for every run (no knob-ON contrast);
  fixes the 'can't see train' longrun/sub4 figures (they had no hk_on data).
- Prune 9 orphan figure sets not referenced in paper or blog (regenerable on demand);
  keep the 3 referenced + a5 + train_vs_deploy_60_train_deploy. All 4 CSVs committed.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
wassname
2026-06-05 04:08:58 +00:00
co-authored by Claudypoo
parent f0cbbacaf0
commit 8daf58d25e
44 changed files with 1287 additions and 19787 deletions
+6 -3
View File
@@ -74,9 +74,12 @@ def _panel(ax, by_arm, modes, arms, field, title, xlabel):
TODO(seeds): A5 ships n=1 (seed 41, jobs 103/104) so no error bar yet; the
queued seeds 42/43 (jobs 107-110) populate xerr -- the code already aggregates."""
y = np.arange(len(modes))[::-1] # first mode at top
for j in range(len(modes)): # connector between arms, per mode
for j in range(len(modes)): # arrow baseline->ours per mode: shows the DIRECTION of change
xs = [_mode_stats(by_arm, a, modes, field)[0][j] for a in arms]
ax.plot(xs, [y[j]] * len(arms), color="0.75", lw=1.0, zorder=1)
if len(xs) >= 2 and np.isfinite(xs[0]) and np.isfinite(xs[-1]):
ax.annotate("", xy=(xs[-1], y[j]), xytext=(xs[0], y[j]), zorder=1,
arrowprops=dict(arrowstyle="-|>", color="0.6", lw=1.1,
shrinkA=6, shrinkB=6))
for i, arm in enumerate(arms):
label, color = ARM[arm]
means, stds = _mode_stats(by_arm, arm, modes, field)
@@ -87,7 +90,7 @@ def _panel(ax, by_arm, modes, arms, field, title, xlabel):
for v, yy in zip(means, y):
if np.isnan(v):
continue
txt = "0" if v < 5e-3 else f"{v:.2f}" # a dot on the axis still needs the finding marked
txt = "0" if v < 5e-3 else f"{v:.2f}" # finite-sample estimate: approx, not identically, zero
ax.annotate(txt, (v, yy), fontsize=6, color=color, ha="center",
va="bottom", xytext=(0, dy), textcoords="offset points")
ax.set_yticks(y)