code: def add_mpl_colorbar(dfr, fig, dend, params, orientation="row"):
      
      for name in dfr.index[dend["dendrogram"]["leaves"]]:
          if name not in params.classes:
              params.classes[name] = name
  
      # Assign a numerical value to each class, for mpl
      classdict = {cls: idx for (idx, cls) in enumerate(params.classes.values())}
  
      # colourbar
      cblist = []
      for name in dfr.index[dend["dendrogram"]["leaves"]]:
          try:
              cblist.append(classdict[params.classes[name]])
          except KeyError:
              cblist.append(classdict[name])
      colbar = pd.Series(cblist)
  
      # Create colourbar axis - could capture if needed
      if orientation == "row":
          cbaxes = fig.add_subplot(dend["gridspec"][0, 1])
          cbaxes.imshow(
              [[cbar] for cbar in colbar.values],
              cmap=plt.get_cmap(pyani_config.MPL_CBAR),
              interpolation="nearest",
              aspect="auto",
              origin="lower",
          )
      else:
          cbaxes = fig.add_subplot(dend["gridspec"][1, 0])
          cbaxes.imshow(
              [colbar],
              cmap=plt.get_cmap(pyani_config.MPL_CBAR),
              interpolation="nearest",
              aspect="auto",
              origin="lower",
          )
      clean_axis(cbaxes)
      return colbar
docs: Add class colorbars to Matplotlib heatmap.