code: def desaturate(color, prop):
      """Decrease the saturation channel of a color by some percent.
  
      Parameters
      ----------
      color : matplotlib color
          hex, rgb-tuple, or html color name
      prop : float
          saturation channel of color will be multiplied by this value
  
      Returns
      -------
      new_color : rgb tuple
          desaturated color code in RGB tuple representation
  
      """
      # Check inputs
      if not 0 <= prop <= 1:
          raise ValueError("prop must be between 0 and 1")
  
      # Get rgb tuple rep
      rgb = to_rgb(color)
  
      # Short circuit to avoid floating point issues
      if prop == 1:
          return rgb
  
      # Convert to hls
      h, l, s = colorsys.rgb_to_hls(*rgb)
  
      # Desaturate the saturation channel
      s *= prop
  
      # Convert back to rgb
      new_color = colorsys.hls_to_rgb(h, l, s)
  
      return new_color
  
imports: import os
  import inspect
  import warnings
  import colorsys
  from contextlib import contextmanager
  from urllib.request import urlopen, urlretrieve
  from types import ModuleType
  import numpy
  import pandas
  import matplotlib
  from matplotlib.colors import to_rgb
  import matplotlib.pyplot
  from matplotlib.cbook import normalize_kwargs
  from seaborn._core.typing import deprecated
  from seaborn.external.version import Version
  from seaborn.external.appdirs import user_cache_dir
label_desc: Use image node_id 4 for calling a global function with example usage: desaturate(color, prop) and returns: new_color, rgb