docs: def grayify_cmap(cmap):
      """Return a grayscale version of the colormap.
  
      `Source`__
  
      __ https://jakevdp.github.io/blog/2014/10/16/how-bad-is-your-colormap/
      """
      cmap = plt.cm.get_cmap(cmap)
      colors = cmap(np.arange(cmap.N))
      # convert RGBA to perceived greyscale luminance
      # cf. http://alienryderflex.com/hsp.html
      RGB_weight = [0.299, 0.587, 0.114]
      luminance = np.sqrt(np.dot(colors[:, :3] ** 2, RGB_weight))
      colors[:, :3] = luminance[:, np.newaxis]
      return mplcolors.LinearSegmentedColormap.from_list(cmap.name + "_grayscale", colors, cmap.N)