diff --git a/plotting.py b/plotting.py
index 45782de49dd3b638f7a7e6f3116b9354c106d5b2..b2313e6565f64fa2f32c89c4613d81966109983b 100644
--- a/plotting.py
+++ b/plotting.py
@@ -275,7 +275,7 @@ def turn_or_time_range(time, turn_range=None, time_range=None):
     return slice(*turn_range)
 
 
-def plot_tbt(ax, libera_data, what='fsxy', *, over_time=True, turn_range=None, time_range=None):
+def plot_tbt(ax, libera_data, what='fsxy', *, over_time=True, turn_range=None, time_range=None, averaging=500, **kwargs):
     """Plot turn-by-turn data    
     
     :param libera_data: instance of LiberaTBTData
@@ -283,6 +283,7 @@ def plot_tbt(ax, libera_data, what='fsxy', *, over_time=True, turn_range=None, t
     :param over_time: if True, plot data as function of time rather than turn
     :param turn_range: (start, stop) tuple of turns to plot
     :param time_range: (start, stop) tuple of time in s to plot
+    :param averaging: number of consecutive turns to average over
     """
     assert isinstance(libera_data, LiberaTBTData), f'Expected LiberaTBTData but got {type(libera_data)}'
     
@@ -306,8 +307,11 @@ def plot_tbt(ax, libera_data, what='fsxy', *, over_time=True, turn_range=None, t
             v = 1e-3/np.diff(t) # to kHz
         else:
             v = getattr(libera_data, w)[turn_range]
-            
-        l, = a.plot(*avg(x[:len(v)], v, n=500), c=dict(f=cmap_petroff_10(1), s=cmap_petroff_10(3), x=cmap_petroff_10(0), y=cmap_petroff_10(2))[w])
+        
+        args = dict(**kwargs)
+        if 'c' not in args and 'color' not in args: 
+            args['c'] = dict(f=cmap_petroff_10(1), s=cmap_petroff_10(3), x=cmap_petroff_10(0), y=cmap_petroff_10(2))[w]
+        l, = a.plot(*avg(x[:len(v)], v, n=averaging), **args)
         ls.append(l)
         labels.append(dict(f='Revolution frequency', s='Pickup sum signal', x='X position', y='Y position')[w])