From Claude:
Root cause: column-name mismatch. The trials table emits lickspout_position_x/y1/y2/z, but the QC _COLUMNS map looks for lickspout_x/y1/y2/z. All four resolve to None, nothing is plotted, and matplotlib defaults the empty axis to 0.0–1.0 — that's the "messed up" x-axis.
From Claude:
Root cause: column-name mismatch. The trials table emits lickspout_position_x/y1/y2/z, but the QC _COLUMNS map looks for lickspout_x/y1/y2/z. All four resolve to None, nothing is plotted, and matplotlib defaults the empty axis to 0.0–1.0 — that's the "messed up" x-axis.