This commit is contained in:
awe
2026-06-09 18:34:27 +03:00
parent 6b5dbb524e
commit 0fa36a82b3

View File

@ -283,14 +283,40 @@ def make_update(reader, parser, assembler, curves, plots):
fft_db = 20.0 * np.log10(fft_mag + 1e-12)
c_fft.setData(fft_dist, fft_db)
# Lock axes after first sweep — freeze current Y ranges
# Lock axes after first sweep — compute ranges from data, then freeze
if not state["axes_locked"]:
state["axes_locked"] = True
for p in plots:
vr = p.viewRange()
p.disableAutoRange()
p.setXRange(vr[0][0], vr[0][1], padding=0)
p.setYRange(vr[1][0], vr[1][1], padding=0)
p_raw, p_ch, p_norm, p_ph, p_fft = plots
fx0, fx1 = freqs_ghz[0], freqs_ghz[-1]
# Row 0: raw amplitudes
y_all = np.concatenate([main_amp, ref_amplitude])
p_raw.disableAutoRange()
p_raw.setXRange(fx0, fx1, padding=0)
p_raw.setYRange(float(y_all.min()), float(y_all.max()), padding=0.05)
# Row 1: normalized ch1/ch2
y_all = np.concatenate([norm_ch1, norm_ch2])
p_ch.disableAutoRange()
p_ch.setXRange(fx0, fx1, padding=0)
p_ch.setYRange(float(y_all.min()), float(y_all.max()), padding=0.05)
# Row 2: normalized amplitude
p_norm.disableAutoRange()
p_norm.setXRange(fx0, fx1, padding=0)
p_norm.setYRange(float(norm_amp.min()), float(norm_amp.max()), padding=0.05)
# Row 3: phase + line + deviation
y_all = np.concatenate([phase, line, deviation])
p_ph.disableAutoRange()
p_ph.setXRange(fx0, fx1, padding=0)
p_ph.setYRange(float(y_all.min()), float(y_all.max()), padding=0.05)
# Row 4: FFT
p_fft.disableAutoRange()
p_fft.setXRange(float(fft_dist[0]), float(fft_dist[-1]), padding=0)
p_fft.setYRange(float(fft_db.min()), float(fft_db.max()), padding=0.05)
return update