code: def plot(self, figure=None):
          
          sns.set_style("whitegrid")
          sns.set_context("paper", font_scale=0.8)
  
          if figure is None:
              figure = plt.gcf()
  
          nconfounds = len(self.confounds)
          nspikes = len(self.spikes)
          nrows = 1 + nconfounds + nspikes
  
          # Create grid
          grid = mgs.GridSpec(nrows, 1, wspace=0.0, hspace=0.05,
                              height_ratios=[1] * (nrows - 1) + [5])
  
          grid_id = 0
          for tsz, name, iszs in self.spikes:
              spikesplot(tsz, title=name, outer_gs=grid[grid_id], tr=self.tr,
                         zscored=iszs)
              grid_id += 1
  
          if self.confounds:
              palette = color_palette("husl", nconfounds)
  
          for i, (name, kwargs) in enumerate(self.confounds.items()):
              tseries = kwargs.pop('values')
              confoundplot(
                  tseries, grid[grid_id], tr=self.tr, color=palette[i],
                  name=name, **kwargs)
              grid_id += 1
  
          plot_carpet(self.func_file, self.seg_data, subplot=grid[-1], tr=self.tr)
          # spikesplot_cb([0.7, 0.78, 0.2, 0.008])
          return figure
docs: Main plotter