docstr: Returns a Bokeh glyph object.
docstr_tok: ["Returns","a","Bokeh","glyph","object","."]
code: def _init_glyph(self, plot, mapping, properties):
      """
      Returns a Bokeh glyph object.
      """
      plot_method = properties.pop("plot_method", None)
      properties = mpl_to_bokeh(properties)
      data = dict(properties, **mapping)
      if self._has_holes:
          plot_method = "multi_polygons"
      elif plot_method is None:
          plot_method = self._plot_methods.get("single")
      renderer = getattr(plot, plot_method)(**data)
      if self.colorbar:
          for k, v in list(self.handles.items()):
              if not k.endswith("color_mapper"):
                  continue
              self._draw_colorbar(plot, v, k[:-12])
      return renderer, renderer.glyph
  
imports: from collections import defaultdict
  import numpy
  import param
  from ...core import util
  from ...element import Contours, Polygons
  from ...util.transform import dim
  from .callbacks import PolyDrawCallback, PolyEditCallback
  from .element import ColorbarPlot, LegendPlot, OverlayPlot
  from .selection import BokehOverlaySelectionDisplay
  from .styles import base_properties, expand_batched_style, fill_properties, line_properties, mpl_to_bokeh, validate
  from .util import multi_polygons_data
label_desc: Use image node_id 5 for calling the ContourPlot obj's underlying member method code with example usage: obj._init_glyph(plot, mapping, properties) and returns: renderer,  renderer