code: def shade(self, binned):
      # Mask missing data in the greyscale array
      mask = compute_mask(binned.data)
      A = np.ma.masked_array(binned.data, mask)
  
      # Rescale the norm to the current array
      self.set_array(A)
      if self._vmin is not None:
          self.norm.vmin = self._vmin
      if self._vmax is not None:
          self.norm.vmax = self._vmax
      if A.size:
          if self._vmin is None:
              self.norm.vmin = A.min()
          if self._vmax is None:
              self.norm.vmax = A.max()
      self.autoscale_None()
  
      # Make the image with matplotlib
      return self.to_rgba(A, bytes=True, norm=True)
  
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 2 for calling the ScalarDSArtist obj's underlying member method code with example usage: obj.shade(binned) and returns: self