docs: def initialize_plot(self, data=None, ax=None, make_plot=True, clear=False,
                          draw=False, remove=False, priority=None):
          """
          Initialize the plot for a data array
  
          Parameters
          ----------
          data: InteractiveArray or ArrayList, optional
              Data object that shall be visualized.
  
              - If not None and `plot` is True, the given data is visualized.
              - If None and the :attr:`data` attribute is not None, the data in
                the :attr:`data` attribute is visualized
              - If both are None, nothing is done.
          %(Plotter.parameters.ax|make_plot|clear)s
          %(InteractiveBase.start_update.parameters.draw)s
          remove: bool
              If True, old effects by the formatoptions in this plotter are
              undone first
          priority: int
              If given, initialize only the formatoption with the given priority.
              This value must be out of :data:`START`, :data:`BEFOREPLOTTING` or
              :data:`END`
          """
          if data is None and self.data is not None:
              data = self.data
          else:
              self.data = data
          self.ax = ax
          if data is None:  # nothing to do if no data is given
              return
          self.no_auto_update = not (
              not self.no_auto_update or not data.psy.no_auto_update)
          data.psy.plotter = self
          if not make_plot:  # stop here if we shall not plot
              return
          self.logger.debug("Initializing plot...")
          if remove:
              self.logger.debug("    Removing old formatoptions...")
              for fmto in self._fmtos:
                  try:
                      fmto.remove()
                  except Exception:
                      self.logger.debug(
                          "Could not remove %s while initializing", fmto.key,
                          exc_info=True)
          if clear:
              self.logger.debug("    Clearing axes...")
              self.ax.clear()
              self.cleared = True
          # get the formatoptions. We sort them here by key to make sure that the
          # order always stays the same (easier for debugging)
          fmto_groups = self._grouped_fmtos(self._sorted_by_priority(
              sorted(self._fmtos, key=lambda fmto: fmto.key)))
          self.plot_data = self.data
          self._updating = True
          for fmto_priority, grouper in fmto_groups:
              if priority is None or fmto_priority == priority:
                  self._plot_by_priority(fmto_priority, grouper,
                                         initializing=True)
          self._release_all(True)  # finish the update
          self.cleared = False
          self.replot = False
          self._initialized = True
          self._updating = False
  
          if draw is None:
              draw = rcParams['auto_draw']
          if draw:
              self.draw()
              if rcParams['auto_show']:
                  self.show()