1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
   | import math
  import matplotlib.pyplot as plt
  import matplotlib.colors as mcolors from matplotlib.patches import Rectangle
 
  def plot_colortable(colors, *, ncols=4, sort_colors=True):
      cell_width = 212     cell_height = 22     swatch_width = 48     margin = 12
           if sort_colors is True:         names = sorted(             colors, key=lambda c: tuple(mcolors.rgb_to_hsv(mcolors.to_rgb(c))))     else:         names = list(colors)
      n = len(names)     nrows = math.ceil(n / ncols)
      width = cell_width * ncols + 2 * margin     height = cell_height * nrows + 2 * margin     dpi = 72
      fig, ax = plt.subplots(figsize=(width / dpi, height / dpi), dpi=dpi)     fig.subplots_adjust(margin/width, margin/height,                         (width-margin)/width, (height-margin)/height)     ax.set_xlim(0, cell_width * ncols)     ax.set_ylim(cell_height * (nrows-0.5), -cell_height/2.)     ax.yaxis.set_visible(False)     ax.xaxis.set_visible(False)     ax.set_axis_off()
      for i, name in enumerate(names):         row = i % nrows         col = i // nrows         y = row * cell_height
          swatch_start_x = cell_width * col         text_pos_x = cell_width * col + swatch_width + 7
          ax.text(text_pos_x, y, name, fontsize=14,                 horizontalalignment='left',                 verticalalignment='center')
          ax.add_patch(             Rectangle(xy=(swatch_start_x, y-9), width=swatch_width,                       height=18, facecolor=colors[name], edgecolor='0.7')         )
      return fig
 
 
  for cl in [mcolors.BASE_COLORS, mcolors.TABLEAU_COLORS, mcolors.CSS4_COLORS, mcolors.XKCD_COLORS]:     print(len(cl))
  for (k, v) in mcolors.BASE_COLORS.items():     v = "#" + "".join(format(round(val * 255), "02x") for val in v)     print(f'<font color="{v}"> ████ {k:<10} </font>')
  for (k, v) in mcolors.TABLEAU_COLORS.items():     print(f'<font color="{v}"> ████ {k:<10} </font>')
 
  plot_colortable(mcolors.BASE_COLORS, ncols=5, sort_colors=False)
  plt.show()
  plot_colortable(mcolors.TABLEAU_COLORS, ncols=5, sort_colors=False)
  plt.show()
  plot_colortable(mcolors.CSS4_COLORS, ncols=10)
  plt.show()
  plot_colortable(mcolors.XKCD_COLORS, ncols=10)
  plt.show()
 
   |