diff --git a/Python_script/analysis.py b/Python_script/analysis.py index 1843c5ead3e78388b5a1c1bf8d105e2f9764b378..2c87668efdafec3b4c45577f17774e45b35dccf4 100644 --- a/Python_script/analysis.py +++ b/Python_script/analysis.py @@ -1,5 +1,6 @@ import pandas as pd import matplotlib.pyplot as plt +import math def extract_stable_data(datafile): datapoint = {} @@ -46,15 +47,22 @@ def plot_temperature_sweep(start_temp, stop_temp, humidity, basename): phase_vars.append(datapoint['phase_var']) magnitudes.append(datapoint['magnitude_mean']) magnitude_vars.append(datapoint['magnitude_var']) - + + magnitudes_db = [ 20* math.log10(x) for x in magnitudes ] + #approximate formula for small errors (linear approximation) + magnitude_vars_db = [ 20 / math.log(10) * dx/x for x, dx in zip( magnitudes, magnitude_vars )] + fig, ax1 = plt.subplots() + + plt.title('Temperature sweep at ' +str(humidity) + ' % r.h.') + ax1.errorbar(temps,phases,phase_vars,marker='+',linewidth=0) ax1.set_xlabel('temperature [deg C]') ax1.set_ylabel('S21 phase [deg]', color='blue') ax2 = ax1.twinx() - ax2.errorbar(temps,magnitudes,magnitude_vars,marker='x',color='red',linewidth=0) - ax2.set_ylabel('S21 magnitude [lin]', color='red') + ax2.errorbar(temps,magnitudes_db,magnitude_vars_db,marker='x',color='red',linewidth=0) + ax2.set_ylabel('S21 magnitude [dB]', color='red') fig.tight_layout() # otherwise the right y-label is slightly clipped plt.show()