class_docstr: A mixin class to map scalar data to RGBA.
  
  The ScalarMappable applies data normalization before returning RGBA colors
  from the given colormap.
code: def norm(self, norm):
      _api.check_isinstance((colors.Normalize, str, None), norm=norm)
      if norm is None:
          norm = colors.Normalize()
      elif isinstance(norm, str):
          try:
              scale_cls = scale._scale_mapping[norm]
          except KeyError:
              raise ValueError(
                  "Invalid norm str name; the following values are "
                  f"supported: {', '.join(scale._scale_mapping)}"
              ) from None
          norm = _auto_norm_from_scale(scale_cls)()
  
      if norm is self.norm:
          # We aren't updating anything
          return
  
      in_init = self.norm is None
      # Remove the current callback and connect to the new one
      if not in_init:
          self.norm.callbacks.disconnect(self._id_norm)
      self._norm = norm
      self._id_norm = self.norm.callbacks.connect(
          "changed", self.changed
      )
      if not in_init:
          self.changed()
  
imports: from collections.abc import Mapping
  import functools
  import numpy
  from numpy import ma
  import matplotlib
  from matplotlib import _api, colors, cbook, scale
  from matplotlib._cm import datad
  from matplotlib._cm_listed import cmaps
label_desc: Use image node_id 12 for calling the ScalarMappable obj's underlying member method code with example usage: obj.norm(norm) without return types