code: def plot_segmentation_dictionary(self, x, segmentation_dictionary, figsize=(10, 5)):
          
          data = x
          
          fig, ax = plt.subplots()
          fig.set_size_inches(figsize[0], figsize[1])
  
          # fix this!!
          colors = 'bgrcmykwbgrcmykwbgrcmykw'
  
          data.plot(ax=ax)
  
          for i, (k, v) in enumerate(segmentation_dictionary.items()):
              for start, end in v:
                  if type(start) != np.datetime64:
                      start = data.index.values[start]
                      end = data.index.values[end]
  
                  plt.axvspan(start, end, color=colors[i], alpha=0.5)
  
          legend = [mpatches.Patch(color=colors[i], label="{}".format(k)) for i, k in enumerate(segmentation_dictionary.keys())]
  
          plt.legend(handles=legend)
  
          plt.show()
docs: Utility method used to visualize how the segmentation dictionary interacts with the time series.
  
              :param data_frame: The data frame. It should have x, y, and z columns.
              :type data_frame: pandas.DataFrame
              :param segmentation_dictionary: A dictionary of the form {'signal_type': [(from, to), (from, to)], ..., 'signal_type': [(from, to), (from, to)]}.
              :type segmentation_dictionary: dict
              :param figsize: The size of the figure where we will plot the segmentation on top of the provided time series ((10, 5) default).
              :type figsize: tuple