[matplotlib]plt.scatter()中cmap用法

import numpy as np
import matplotlib.pyplot as plt


# Have colormaps separated into categories:
# http://matplotlib.org/examples/color/colormaps_reference.html
cmaps = [(Perceptually Uniform Sequential, [
            viridis, plasma, inferno, magma]),
         (Sequential, [
            Greys, Purples, Blues, Greens, Oranges, Reds,
            YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu,
            GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGn]),
         (Sequential (2), [
            binary, gist_yarg, gist_gray, gray, bone, pink,
            spring, summer, autumn, winter, cool, Wistia,
            hot, afmhot, gist_heat, copper]),
         (Diverging, [
            PiYG, PRGn, BrBG, PuOr, RdGy, RdBu,
            RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic]),
         (Qualitative, [
            Pastel1, Pastel2, Paired, Accent,
            Dark2, Set1, Set2, Set3,
            tab10, tab20, tab20b, tab20c]),
         (Miscellaneous, [
            flag, prism, ocean, gist_earth, terrain, gist_stern,
            gnuplot, gnuplot2, CMRmap, cubehelix, brg, hsv,
            gist_rainbow, rainbow, jet, nipy_spectral, gist_ncar])]


nrows = max(len(cmap_list) for cmap_category, cmap_list in cmaps)
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))


def plot_color_gradients(cmap_category, cmap_list, nrows):
    fig, axes = plt.subplots(nrows=nrows)
    fig.subplots_adjust(top=0.95, bottom=0.01, left=0.2, right=0.99)
    axes[0].set_title(cmap_category +  colormaps, fontsize=14)

    for ax, name in zip(axes, cmap_list):
        ax.imshow(gradient, aspect=auto, cmap=plt.get_cmap(name))
        pos = list(ax.get_position().bounds)
        x_text = pos[0] - 0.01
        y_text = pos[1] + pos[3]/2.
        fig.text(x_text, y_text, name, va=center, ha=right, fontsize=10)

    # Turn off *all* ticks & spines, not just the ones with colormaps.
    for ax in axes:
        ax.set_axis_off()


for cmap_category, cmap_list in cmaps:
    plot_color_gradients(cmap_category, cmap_list, nrows)

#十分类散点图绘制
randlabel = np.random.randint(0,1,10)
randdata = np.reshape(np.random.rand(10*2),(10,2))


cm = plt.cm.get_cmap(RdYlBu)
z = randlabel
sc = plt.scatter(randdata[:,0], randdata[:,1], c=z, vmin=0, vmax=10, s=35,edgecolors=k, cmap=cm)
plt.colorbar(sc)
plt.show()
经验分享 程序员 微信小程序 职场和发展