I present here simple convenient functions to plot a matplotlib colormap or a color palette.
The source codes of the functions are available on this gist.
For colormaps
You can use either its name or the matplotlib.cm.colormap
object.
This is how to use the function :
fig = plot_cmap("summer", 6) |
or
fig = plot_cmap(plt.cm.summer, 6) |
And you will get :
The source code
import matplotlib.pyplot as plt def plot_cmap(cmap, ncolor): """ A convenient function to plot colors of a matplotlib cmap Args: ncolor (int): number of color to show cmap: a cmap object or a matplotlib color name """ if isinstance(cmap, str): try: cm = plt.get_cmap(cmap) except ValueError: print("WARNINGS :", cmap, " is not a known colormap") cm = plt.cm.gray else: cm = cmap with mpl.rc_context(mpl.rcParamsDefault): fig = plt.figure(figsize=(6, 1), frameon=False) ax = fig.add_subplot(111) ax.pcolor(np.linspace(1, ncolor, ncolor).reshape(1, ncolor), cmap=cm) ax.set_title(cm.name) xt = ax.set_xticks([]) yt = ax.set_yticks([]) return fig |
For a list of colors
This is how to use the function :
colors = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"] show_colors(colors) |
And you will simply get a square for each color :
The source code
import matplotlib.pyplot as plt def show_colors(colors): """ Draw a square for each color contained in the colors list given in argument. """ with plt.rc_context(plt.rcParamsDefault): fig = plt.figure(figsize=(6, 1), frameon=False) ax = fig.add_subplot(111) for x, color in enumerate(colors): ax.add_patch( mpl.patches.Rectangle( (x, 0), 1, 1, facecolor=color ) ) ax.set_xlim((0, len(colors))) ax.set_ylim((0, 1)) ax.set_xticks([]) ax.set_yticks([]) ax.set_aspect("equal") return fig |