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')