code: def _init_plot(self, key, element, plots, ranges=None):
          
          subplots = list(self.subplots.values()) if self.subplots else []
  
          axis_types, labels, plot_ranges = self._axes_props(plots, subplots, element, ranges)
          xlabel, ylabel, _ = labels
          x_axis_type, y_axis_type = axis_types
          properties = dict(plot_ranges)
          properties['x_axis_label'] = xlabel if 'x' in self.labelled or self.xlabel else ' '
          properties['y_axis_label'] = ylabel if 'y' in self.labelled or self.ylabel else ' '
  
          if not self.show_frame:
              properties['outline_line_alpha'] = 0
  
          if self.show_title and self.adjoined is None:
              title = self._format_title(key, separator=' ')
          else:
              title = ''
  
          if self.toolbar != 'disable':
              tools = self._init_tools(element)
              properties['tools'] = tools
              properties['toolbar_location'] = self.toolbar
          else:
              properties['tools'] = []
              properties['toolbar_location'] = None
  
          if self.renderer.webgl:
              properties['output_backend'] = 'webgl'
  
          properties.update(**self._plot_properties(key, element))
  
          with warnings.catch_warnings():
              # Bokeh raises warnings about duplicate tools but these
              # are not really an issue
              warnings.simplefilter('ignore', UserWarning)
              return bokeh.plotting.Figure(x_axis_type=x_axis_type,
                                           y_axis_type=y_axis_type, title=title,
                                           **properties)
docs: Initializes Bokeh figure to draw Element into and sets basic
          figure and axis attributes including axes types, labels,
          titles and plot height and width.