fix
This commit is contained in:
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user