code: def _init_glyphs(self, plot, element, ranges, source):
      super()._init_glyphs(plot, element, ranges, source)
      if not (
          "holoviews.operation.datashader" in sys.modules
          and self.show_legend
      ):
          return
      try:
          legend = categorical_legend(element, backend=self.backend)
      except Exception:
          return
      if legend is None:
          return
      legend_params = {
          k: v
          for k, v in self.param.values().items()
          if k.startswith("legend")
      }
      self._legend_plot = PointPlot(
          legend, keys=[], overlaid=1, **legend_params
      )
      self._legend_plot.initialize_plot(plot=plot)
      self._legend_plot.handles["glyph_renderer"].tags.append(
          "hv_legend"
      )
      self.handles["rgb_color_mapper"] = self._legend_plot.handles[
          "color_color_mapper"
      ]
  
imports: import sys
  import numpy
  import param
  from bokeh.models import CustomJSHover, DatetimeAxis
  from ...core.util import cartesian_product, dimension_sanitizer, isfinite
  from ...element import Raster
  from ..util import categorical_legend
  from .chart import PointPlot
  from .element import ColorbarPlot, LegendPlot
  from .selection import BokehOverlaySelectionDisplay
  from .styles import base_properties, fill_properties, line_properties, mpl_to_bokeh
  from .util import bokeh33, bokeh34, colormesh
label_desc: Use image node_id 3 for calling the RGBPlot obj's underlying member method code with example usage: obj._init_glyphs(plot, element, ranges, source) without return types