docs: def plot(self, figure_list):
          '''
          When each subscript is called, uses its standard plotting
  
          Args:
              figure_list: list of figures passed from the guit
  
          '''
  
          #TODO: be smarter about how we plot ScriptIterator
          if self._current_subscript_stage is not None:
              if self._current_subscript_stage['current_subscript'] is not None:
                  self._current_subscript_stage['current_subscript'].plot(figure_list)
  
          if (self.is_running is False) and not (self.data == {} or self.data is None):
  
              script_names = list(self.settings['script_order'].keys())
              script_indices = [self.settings['script_order'][name] for name in script_names]
              _, sorted_script_names = list(zip(*sorted(zip(script_indices, script_names))))
  
              last_script = self.scripts[sorted_script_names[-1]]
  
              last_script.force_update()  # since we use the last script plot function we force it to refresh
  
              axes_list = last_script.get_axes_layout(figure_list)
  
              # catch error is _plot function doens't take optional data argument
              try:
                  last_script._plot(axes_list, self.data)
              except TypeError as err:
                  print((warnings.warn('can\'t plot average script data because script.plot function doens\'t take data as optional argument. Plotting last data set instead')))
                  print((err.message))
                  last_script.plot(figure_list)