regimes figure: sensor/workspace/motor shading restored (rule-derived, matches original hand-shaded bands)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Nils
2026-07-15 22:09:09 +02:00
co-authored by Claude Fable 5
parent dc43769118
commit 600f965247
2 changed files with 14 additions and 0 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 139 KiB

+14
View File
@@ -50,6 +50,20 @@ for ax, (title, ptfile, key) in zip(axes, PANELS):
band = REG.get(key, {}).get("workspace_band") band = REG.get(key, {}).get("workspace_band")
if band: if band:
ax.axvspan(band[0], band[1], color="#2f855a", alpha=0.10) ax.axvspan(band[0], band[1], color="#2f855a", alpha=0.10)
ax.text(sum(band) / 2, 0.51, "workspace", color="#2f855a",
fontsize=7, ha="center")
# sensor regime: contiguous pre-band region where the sensor
# readout dominates (rule reproduces the hand-shaded E2B bands)
sens = [i for i, (s, m) in enumerate(zip(sensor, motor))
if s > m and s >= 0.05 and i < band[0]]
if sens:
ax.axvspan(min(sens), max(sens) + 1, color="#2b6cb0", alpha=0.08)
ax.text((min(sens) + max(sens) + 1) / 2, 0.51, "sensor",
color="#2b6cb0", fontsize=7, ha="center")
if band[1] + 1 < L - 1:
ax.axvspan(band[1] + 1, L - 1, color="#c53030", alpha=0.08)
ax.text((band[1] + L) / 2, 0.51, "motor", color="#c53030",
fontsize=7, ha="center")
kv = REG.get(key, {}).get("kv_share_start") kv = REG.get(key, {}).get("kv_share_start")
if isinstance(kv, int): if isinstance(kv, int):
ax.axvline(kv, color="#c53030", lw=0.9, ls=":") ax.axvline(kv, color="#c53030", lw=0.9, ls=":")