diff --git a/pulse_lib/sequencer.py b/pulse_lib/sequencer.py
index 718524fffd6edbe0750cdf4b35782b8ac3681a69..dcbffd05a5e74d90c495942267ae8753d8ec886f 100644
--- a/pulse_lib/sequencer.py
+++ b/pulse_lib/sequencer.py
@@ -231,7 +231,8 @@ class sequencer():
 
         for i in range(len(self.labels)):
             par_name = self.labels[i].replace(' ','_')
-            set_param = index_param(par_name, self, dim = i)
+            set_param = index_param(par_name, self.labels[i], self.units[i],
+                                    self, dim = i)
             self.params.append(set_param)
             setattr(self, par_name, set_param)
 
@@ -542,13 +543,14 @@ class sequencer():
                 self.upload(index)
 
 
-    def plot(self, index=None, segments=None, awg_output=True):
+    def plot(self, index=None, segments=None, awg_output=True, channels=None):
         '''
         Plot sequence for specified index and segments.
         Args:
             index (tuple): index in sequence. If None use last index set via sweep params.
             segments (list[int]): indices of segments to plot. If None, plot all.
             awg_output (bool): if True plot output of AWGs, else plot virtual data.
+            channels (list[str]): names of channels to plot, if None, plot all.
         '''
         if index is None:
             index = self.sweep_index[::-1]
@@ -558,7 +560,7 @@ class sequencer():
         for s in segments:
             pt.figure()
             pt.title(f'Segment {s} index:{index}')
-            self.sequence[s].plot(index, render_full=awg_output)
+            self.sequence[s].plot(index, channels=channels, render_full=awg_output)
 
     def get_measurement_results(self, index=None,
                                 raw=True, states=True, values=True,
@@ -721,12 +723,17 @@ class sequencer():
             raise IndexError(f'Index {index} out of range; sequence shape {self._shape}')
 
 class index_param(Parameter):
-    def __init__(self, name, my_seq, dim):
+    def __init__(self, name, label, unit, my_seq, dim):
         self.my_seq = my_seq
         self.dim = dim
         self.values = my_seq.setpoints[dim]
         val_map = dict(zip(self.values, range(len(self.values))))
-        super().__init__(name=name, val_mapping = val_map, initial_value = self.values[0])
+        super().__init__(
+                name=name,
+                label=label,
+                unit=unit,
+                val_mapping = val_map,
+                initial_value = self.values[0])
 
     def set_raw(self, value):
         self.my_seq.set_sweep_index(self.dim, value)