diff --git a/Python_script/climate-lab-gui.py b/Python_script/climate-lab-gui.py
index df9aff565fa66dd915109e133dcd9d758c8c53ea..cc85ac35a9e82df9fc9c6fb79e39c403d836a175 100755
--- a/Python_script/climate-lab-gui.py
+++ b/Python_script/climate-lab-gui.py
@@ -34,10 +34,10 @@ class TestStandMainWindow(QMainWindow):
                                       False, config_data)
         try:
             if self.tempSweepButton.isChecked():
-                temperatures = meas.perform_temperature_sweep(self.startParameter.value(), self.stopParameter.value(),
-                                                              self.stepParameter.value(),
-                                                              self.fixedParameter.value(), self.soakingTime.value(),
-                                                              self.stableReads.value())
+                temperatures = meas.perform_sweep(self.startParameter.value(), self.stopParameter.value(),
+                                                  self.stepParameter.value(), self.fixedParameter.value(),
+                                                  self.soakingTime.value(), self.stableReads.value(),
+                                                  'temperature')
                 temp_extensions = []
                 for t in temperatures:
                     temp_extensions.append(str(t)+'deg_'+str(self.fixedParameter.value())+'rh')
diff --git a/Python_script/prototype.py b/Python_script/prototype.py
index a29781ff88429fc21a9d1247779d200bbd48a7a0..9e09a5e29a8b2b5893767215091e2499284cdc7c 100755
--- a/Python_script/prototype.py
+++ b/Python_script/prototype.py
@@ -93,23 +93,33 @@ class Measurements:
 
         return measurement_number
 
-    def perform_temperature_sweep(self, start_temp, stop_temp, temp_step, target_hum, soaking_time, n_stable_reads):
-        current_temp = start_temp
-        temperatures = []
-        while current_temp < stop_temp:
-            temperatures.append(current_temp)
-            current_temp = round(current_temp + temp_step, 1)
-        temperatures.append(stop_temp)
-
-        for temp in temperatures:
-            output_name = self.output_basename + '_'+str(temp)+'deg_'+str(target_hum)+'rh.csv'
-            self.measurement_plot.fig.suptitle("Temp. sweep measurement "+str(temperatures.index(temp)+1)+'/'+str(len(temperatures))+
-                                               ': ' + str(temp) + ' degC, ' + str(target_hum) + ' rel. hum.',
+    def perform_sweep(self, start_val, stop_val, step_val, const_param, soaking_time, n_stable_reads, sweep_type):
+        current_val = start_val
+        sweep_values = []
+        while current_val < stop_val:
+            sweep_values.append(current_val)
+            current_val = round(current_val + step_val, 1)
+        sweep_values.append(stop_val)
+
+        for val in sweep_values:
+            if sweep_type == 'temperature':
+                target_temp = val
+                target_hum = const_param
+            elif sweep_type == 'humidity':
+                target_temp = const_param
+                target_hum = val
+            else:
+                raise Exception('Unknown sweep type: '+sweep_type)
+
+            output_name = self.output_basename + '_'+str(target_temp)+'deg_'+str(target_hum)+'rh.csv'
+            self.measurement_plot.fig.suptitle(sweep_type + " sweep measurement "+str(sweep_values.index(val)+1)+
+                                               '/'+str(len(sweep_values))+': ' + str(target_temp)+' degC, '
+                                               + str(target_hum) + ' rel. hum.',
                                                color="red")
-            self.perform_single_measurement(output_name, temp, target_hum, soaking_time, n_stable_reads)
+            self.perform_single_measurement(output_name, target_temp, target_hum, soaking_time, n_stable_reads)
 
         plt.close()
-        return temperatures
+        return sweep_values
 
     def perform_single_measurement(self, output, target_temp, target_hum, soaking_time, n_stable_reads):
         with open(output, mode='w', newline='') as csv_file:
@@ -351,8 +361,8 @@ def run_temperature_sweep_from_file(temperature_sweep_file, meas):
             soaking_time = int(list_of_values[4])
             n_stable_reads = int(list_of_values[5])
 
-            return meas.perform_temperature_sweep(start_temp, stop_temp, temperature_step, target_hum, soaking_time,
-                                                  n_stable_reads), target_hum
+            return meas.perform_sweep(start_temp, stop_temp, temperature_step, target_hum, soaking_time,
+                                      n_stable_reads, 'temperature'), target_hum
 
         except KeyboardInterrupt:
             pass