diff --git a/gstlal-calibration/tests/check_calibration/plot_kappas_from_txt.py b/gstlal-calibration/tests/check_calibration/plot_kappas_from_txt.py index d6555a1b61787d26b89700cfeafb7a9cfb691714..1c55d6ade2fb6149189707b136d1adde2ad90b38 100644 --- a/gstlal-calibration/tests/check_calibration/plot_kappas_from_txt.py +++ b/gstlal-calibration/tests/check_calibration/plot_kappas_from_txt.py @@ -69,12 +69,11 @@ txt_list = options.txt_list.split(':') for i in range(len(txt_list)): data.append([]) labels.append([]) - ylabels.append([]) + ylabels.append(None) txt_list[i] = txt_list[i].split(';') for j in range(len(txt_list[i])): data[i].append([]) labels[i].append([]) - ylabels[i].append(None) txt_list[i][j] = txt_list[i][j].split(',') for k in range(len(txt_list[i][j])): data[i][j].append(np.loadtxt(txt_list[i][j][k]).transpose()) @@ -85,140 +84,140 @@ for i in range(len(txt_list)): if 'tst' in txt_list[i][j][k] or 'TST' in txt_list[i][j][k]: if 'imag' in txt_list[i][j][k] or 'IMAG' in txt_list[i][j][k]: labels[i][j][k] += r': $\Im(\kappa_{\rm T})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(-0.1) data_max.append(0.1) elif 'real' in txt_list[i][j][k] or 'REAL' in txt_list[i][j][k]: labels[i][j][k] += r': $\Re(\kappa_{\rm T})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'tau' in txt_list[i][j][k] or 'TAU' in txt_list[i][j][k]: labels[i][j][k] += r': $\tau_{\rm T}$' - ylabels[i][j] = "Time ($\mu$s)" + ylabels[i] = "Time ($\mu$s)" if j == 0 and k == 0: data_min.append(-1000) data_max.append(1000) else: # Assume it's the magnitude labels[i][j][k] += r': $\kappa_{\rm T}$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'pum' in txt_list[i][j][k] or 'PUM' in txt_list[i][j][k]: if 'imag' in txt_list[i][j][k] or 'IMAG' in txt_list[i][j][k]: labels[i][j][k] += r': $\Im(\kappa_{\rm P})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(-0.1) data_max.append(0.1) elif 'real' in txt_list[i][j][k] or 'REAL' in txt_list[i][j][k]: labels[i][j][k] += r': $\Re(\kappa_{\rm P})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'tau' in txt_list[i][j][k] or 'TAU' in txt_list[i][j][k]: labels[i][j][k] += r': $\tau_{\rm P}$' - ylabels[i][j] = "Time ($\mu$s)" + ylabels[i] = "Time ($\mu$s)" if j == 0 and k == 0: data_min.append(-1000) data_max.append(1000) else: # Assume it's the magnitude labels[i][j][k] += r': $\kappa_{\rm P}$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'uim' in txt_list[i][j][k] or 'UIM' in txt_list[i][j][k]: if 'imag' in txt_list[i][j][k] or 'IMAG' in txt_list[i][j][k]: labels[i][j][k] += r': $\Im(\kappa_{\rm U})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(-0.1) data_max.append(0.1) elif 'real' in txt_list[i][j][k] or 'REAL' in txt_list[i][j][k]: labels[i][j][k] += r': $\Re(\kappa_{\rm U})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'tau' in txt_list[i][j][k] or 'TAU' in txt_list[i][j][k]: labels[i][j][k] += r': $\tau_{\rm U}$' - ylabels[i][j] = "Time ($\mu$s)" + ylabels[i] = "Time ($\mu$s)" if j == 0 and k == 0: data_min.append(-1000) data_max.append(1000) else: # Assume it's the magnitude labels[i][j][k] += r': $\kappa_{\rm U}$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'pu' in txt_list[i][j][k] or 'PU' in txt_list[i][j][k]: if 'imag' in txt_list[i][j][k] or 'IMAG' in txt_list[i][j][k]: labels[i][j][k] += r': $\Im(\kappa_{\rm PU})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(-0.1) data_max.append(0.1) elif 'real' in txt_list[i][j][k] or 'REAL' in txt_list[i][j][k]: labels[i][j][k] += r': $\Re(\kappa_{\rm PU})$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'tau' in txt_list[i][j][k] or 'TAU' in txt_list[i][j][k]: labels[i][j][k] += r': $\tau_{\rm PU}$' - ylabels[i][j] = "Time ($\mu$s)" + ylabels[i] = "Time ($\mu$s)" if j == 0 and k == 0: data_min.append(-1000) data_max.append(1000) else: # Assume it's the magnitude labels[i][j][k] += r': $\kappa_{\rm PU}$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.9) data_max.append(1.1) elif 'kc' in txt_list[i][j][k] or 'KC' in txt_list[i][j][k] or 'kappac' in txt_list[i][j][k] or 'KAPPAC' in txt_list[i][j][k] or 'kappa_c' in txt_list[i][j][k] or 'KAPPA_C' in txt_list[i][j][k] or 'kappa_C' in txt_list[i][j][k]: labels[i][j][k] += r': $\kappa_{\rm C}$' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(0.95) data_max.append(1.05) elif 'fc' in txt_list[i][j][k] or 'FC' in txt_list[i][j][k] or 'f_c' in txt_list[i][j][k] or 'F_C' in txt_list[i][j][k]: labels[i][j][k] += r': $f_{\rm cc}$' - ylabels[i][j] = "Frequency (Hz)" + ylabels[i] = "Frequency (Hz)" if j == 0 and k == 0: data_min.append(390) data_max.append(450) elif ('fs_over_Q' in txt_list[i][j][k] or 'FS_OVER_Q' in txt_list[i][j][k] or 'f_s_over_Q' in txt_list[i][j][k] or 'F_S_OVER_Q' in txt_list[i][j][k]): labels[i][j][k] += r': $f_{\rm s} / Q$' - ylabels[i][j] = "Frequency (Hz)" + ylabels[i] = "Frequency (Hz)" if j == 0 and k == 0: data_min.append(-2) data_max.append(0) elif 'fs' in txt_list[i][j][k] or 'FS' in txt_list[i][j][k] or 'f_s' in txt_list[i][j][k] or 'F_S' in txt_list[i][j][k]: labels[i][j][k] += r': $f_{\rm s}^2$' - ylabels[i][j] = "Square Frequency (Hz$^2$)" + ylabels[i] = "Square Frequency (Hz$^2$)" if j == 0 and k == 0: data_min.append(-10) data_max.append(200) elif 'Q' in txt_list[i][j][k] or 'q' in txt_list[i][j][k]: labels[i][j][k] += r': $Q^{-1}$' - ylabels[i][j] = "Inverse Quality Factor" + ylabels[i] = "Inverse Quality Factor" if j == 0 and k == 0: data_min.append(-1) data_max.append(1) else: labels[i][j][k] += 'TDCF' - ylabels[i][j] = "Correction" + ylabels[i] = "Correction" if j == 0 and k == 0: data_min.append(min(data[i][j][k][1])) data_max.append(max(data[i][j][k][1])) @@ -245,12 +244,14 @@ elif dur > 100: plt.figure(figsize = (18, len(data) * 6)) for i in range(len(data)): ax = plt.subplot(len(data), 1, i + 1) + num_legend = 0 for j in range(len(data[i])): - if ylabels[i][j] is not None: - plt.ylabel(ylabels[i][j]) for k in range(len(data[i][j])): plt.plot((data[i][j][k][0] - t_start) / sec_per_t_unit, data[i][j][k][1], colors[j % 3][k % 3], linewidth = 2.0, label = labels[i][j][k]) - leg = plt.legend(fancybox = True) + num_legend += 1 + if ylabels[i] is not None: + plt.ylabel(ylabels[i]) + leg = plt.legend(fancybox = True, loc = 'upper right', ncol = max(1, num_legend // 3)) leg.get_frame().set_alpha(0.5) if i == 0 and options.plot_title is not None: