code: def __init__(
      self,
      ax,
      df,
      glyph,
      aggregator,
      agg_hook=None,
      shade_hook=None,
      plot_width=None,
      plot_height=None,
      x_range=None,
      y_range=None,
      width_scale=1.0,
      height_scale=1.0,
      color_key=None,
      alpha_range=(40, 255),
      color_baseline=None,
      **kwargs,
  ):
      super().__init__(
          ax,
          df,
          glyph,
          aggregator,
          agg_hook,
          shade_hook,
          plot_width,
          plot_height,
          x_range,
          y_range,
          width_scale,
          height_scale,
          **kwargs,
      )
      self._color_key = color_key
      self._alpha_range = alpha_range
      self._color_baseline = color_baseline
  
      # Aggregate the current view
      binned = self.aggregate(
          self.axes.get_xlim(), self.axes.get_ylim()
      )
      if self.agg_hook is not None:
          binned = self.agg_hook(binned)
      self.set_ds_data(binned)
  
      # Placeholder until self.make_image
      self.set_array(np.eye(2))
  
imports: import warnings
  from matplotlib.image import _ImageBase
  from matplotlib.patches import Patch
  from matplotlib.transforms import Bbox, TransformedBbox, BboxTransform
  import matplotlib
  import numpy
  from .None import reductions
  from .None import transfer_functions
  from .colors import Sets1to3
  from .core import bypixel, Canvas
label_desc: Use image node_id 1 to create a new CategoricalDSArtist object from inherited base classes: DSArtist with example: obj = CategoricalDSArtist(ax, df, glyph, aggregator, agg_hook, shade_hook, plot_width, plot_height, x_range, y_range, width_scale, height_scale, color_key, alpha_range, color_baseline)