code: def make_color_legend_rects(colors, labels=None):
      
      from matplotlib.pyplot import Rectangle
      if labels:
          d = dict(zip(labels, colors))
          se = pd.Series(d)
      else:
          se = colors
      rects = []
      for i in se.index:
          r = Rectangle((0, 0), 0, 0, fc=se[i])
          rects.append(r)
      out = pd.Series(rects, index=se.index)
      return out
docs: Make list of rectangles and labels for making legends.
  
      Parameters
      ----------
      colors : pandas.Series or list
          Pandas series whose values are colors and index is labels.
          Alternatively, you can provide a list with colors and provide the labels
          as a list.
  
      labels : list
          If colors is a list, this should be the list of corresponding labels.
  
      Returns
      -------
      out : pd.Series
          Pandas series whose values are matplotlib rectangles and whose index are
          the legend labels for those rectangles. You can add each of these
          rectangles to your axis using ax.add_patch(r) for r in out then create a
          legend whose labels are out.values and whose labels are
          legend_rects.index:
              for r in legend_rects:
                  ax.add_patch(r)
              lgd = ax.legend(legend_rects.values, labels=legend_rects.index)