diff --git a/Python_script/analysis.py b/Python_script/analysis.py index 94e5b96ac48456082aa0fd5d3db7a658ffb12965..2fa4aaa00520362fed83171f2bfa90b0e54be365 100644 --- a/Python_script/analysis.py +++ b/Python_script/analysis.py @@ -69,23 +69,34 @@ def plot_sweep(temperatures, humidities, basename, sweep_type, measurement_sets, if normalise[1]: data['signal1_means'] -= data['signal1_means'][0] - fig = plt.figure(figsize=(10, 5)) - gs = gridspec.GridSpec(nrows=2, ncols=1, hspace=0)#, width_ratios=[3, 1], height_ratios=[3, 1]) - ax1 = fig.add_subplot(gs[0, 0]) - ax2 = fig.add_subplot(gs[1, 0],sharex=ax1) - ##gs = fig.add_gridspec(2, 1, hspace=0) - ##(ax1, ax2) = gs.subplots(sharex=True) - #fig, (ax1, ax2) = plt.subplots(2, sharex=True, gridspec_kw={'hspace': 0}, figsize=(10, 5)) + fig = plt.figure(figsize=(10, 15)) + gs = gridspec.GridSpec(nrows=6, ncols=1, hspace=0)#, width_ratios=[3, 1], height_ratios=[3, 1]) + + upper_text_block = '\n'.join(['DUT name: some cable', + 'SW version: FIXME']) + + fig.text(0.1, 0.9, upper_text_block) + + ax1 = fig.add_subplot(gs[1, 0]) + ax2 = fig.add_subplot(gs[2, 0],sharex=ax1) + ax4 = fig.add_subplot(gs[4, 0]) + ax5 = fig.add_subplot(gs[5, 0],sharex=ax4) ax1.tick_params(bottom=True, top=True, direction='in') ax2.tick_params(bottom=True, top=True, direction='inout') + ax4.tick_params(bottom=True, top=True, direction='in') + ax5.tick_params(bottom=True, top=True, direction='inout') if sweep_type == 'temperature': fig.suptitle(basename + ': Temperature sweep at ' + str(humidities[0]) + ' % r.h.') ax2.set_xlabel('temperature [deg C]') + ax5.set_xlabel('temperature [deg C]') + denominator_name = '/ deg C' elif sweep_type == 'humidity': fig.suptitle(basename + ': Humidity sweep at ' + str(temperatures[0]) + ' deg C') ax2.set_xlabel('relative humidity [%]') + ax5.set_xlabel('relative humidity [%]') + denominator_name = '/ % r.h.' else: raise Exception('Unknown sweep_type:'+str(sweep_type)) @@ -107,8 +118,27 @@ def plot_sweep(temperatures, humidities, basename, sweep_type, measurement_sets, yticks[-2].label1.set_visible(False) # don't ask me why we have to set the last two tick marks to invisible ax2.legend(loc='center right', bbox_to_anchor=(1.5, 1.0)) + ####################################################################################################################### + # Derrivatives + ####################################################################################################################### + for measurement_set in measurement_sets: + data = set_data[measurement_set] + deriv_data = derivatives[measurement_set] + for i in range(len(data['signal0_means'])-1): + ylabel = '$\\Delta$ '+reference_signal_names[0]+' '+denominator_name + deriv_data['signal0_deltas'].append((data['signal0_means'][i+1]-data['signal0_means'][i])/ + (data['x_data'][i+1]-data['x_data'][i])) + deriv_data['signal1_deltas'].append((data['signal1_means'][i+1]-data['signal1_means'][i])/ + (data['x_data'][i+1]+data['x_data'][i])) + deriv_data['x_deltas'].append((data['x_data'][i+1]+data['x_data'][i])/2) + + ax4.scatter(derivatives[measurement_set]['x_deltas'], derivatives[measurement_set]['signal0_deltas'],marker='+', ) + ax5.scatter(derivatives[measurement_set]['x_deltas'], derivatives[measurement_set]['signal1_deltas'],marker='+') + + ax4.set_ylabel('$\\Delta$ '+reference_signal_names[0]+' '+denominator_name) + ax5.set_ylabel('$\\Delta$ '+reference_signal_names[1]+' '+denominator_name) + fig.tight_layout() # otherwise the legend is clipped - plt.subplots_adjust(top=0.9) # avoid overlap with suptitle fig.savefig(basename+measurement_set+'_analysis.pdf')