docstr: Plots color labels between the dendrogram and the heatmap
  
  Parameters
  ----------
  heatmap_kws : dict
      Keyword arguments heatmap
docstr_tok: ["Plots","color","labels","between","the","dendrogram","and","the","heatmap","Parameters","--","--","--","--","--","heatmap_kws",":","dict","Keyword","arguments","heatmap"]
code: def plot_colors(self, xind, yind, **kws):
      """Plots color labels between the dendrogram and the heatmap
  
      Parameters
      ----------
      heatmap_kws : dict
          Keyword arguments heatmap
  
      """
      # Remove any custom colormap and centering
      # TODO this code has consistently caused problems when we
      # have missed kwargs that need to be excluded that it might
      # be better to rewrite *in*clusively.
      kws = kws.copy()
      kws.pop("cmap", None)
      kws.pop("norm", None)
      kws.pop("center", None)
      kws.pop("annot", None)
      kws.pop("vmin", None)
      kws.pop("vmax", None)
      kws.pop("robust", None)
      kws.pop("xticklabels", None)
      kws.pop("yticklabels", None)
  
      # Plot the row colors
      if self.row_colors is not None:
          matrix, cmap = self.color_list_to_matrix_and_cmap(
              self.row_colors, yind, axis=0
          )
  
          # Get row_color labels
          if self.row_color_labels is not None:
              row_color_labels = self.row_color_labels
          else:
              row_color_labels = False
  
          heatmap(
              matrix,
              cmap=cmap,
              cbar=False,
              ax=self.ax_row_colors,
              xticklabels=row_color_labels,
              yticklabels=False,
              **kws,
          )
  
          # Adjust rotation of labels
          if row_color_labels is not False:
              plt.setp(
                  self.ax_row_colors.get_xticklabels(), rotation=90
              )
      else:
          despine(self.ax_row_colors, left=True, bottom=True)
  
      # Plot the column colors
      if self.col_colors is not None:
          matrix, cmap = self.color_list_to_matrix_and_cmap(
              self.col_colors, xind, axis=1
          )
  
          # Get col_color labels
          if self.col_color_labels is not None:
              col_color_labels = self.col_color_labels
          else:
              col_color_labels = False
  
          heatmap(
              matrix,
              cmap=cmap,
              cbar=False,
              ax=self.ax_col_colors,
              xticklabels=False,
              yticklabels=col_color_labels,
              **kws,
          )
  
          # Adjust rotation of labels, place on right side
          if col_color_labels is not False:
              self.ax_col_colors.yaxis.tick_right()
              plt.setp(self.ax_col_colors.get_yticklabels(), rotation=0)
      else:
          despine(self.ax_col_colors, left=True, bottom=True)
  
imports: import warnings
  import matplotlib
  from matplotlib.collections import LineCollection
  import matplotlib.pyplot
  from matplotlib import gridspec
  import numpy
  import pandas
  from .None import cm
  from .axisgrid import Grid
  from ._compat import get_colormap
  from .utils import despine, axis_ticklabels_overlap, relative_luminance, to_utf8, _draw_figure
label_desc: Use image node_id 9 for calling the ClusterGrid obj's underlying member method code with example usage: obj.plot_colors(xind, yind) without return types