牛骨文教育服务平台(让学习变的简单)
博文笔记

基于【matplotlib】【imshow】【cmap】绘制【numpy.ndarray】二维数组的“二维码”

创建时间:2016-12-01 投稿人: 浏览次数:1987

基于 matplotlib 画 numpy.ndarray 二维数组的二维图/灰度图:

全文参考:http://matplotlib.org/examples/color/colormaps_reference.html

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

train_data_source = pd.read_csv("df_recon_train", header=0, encoding="utf-8")
train_data = train_data_source.drop(["uid", "y"], axis=1)

#以train_data的第一行数据为例,画二维数组的二维图
row_ins = train_data[0:1].values[0]

row_ins_rect = row_ins[::-1].reshape(45, 46)

fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax1.imshow(row_ins_rect, cmap=plt.cm.gray_r)
ax2 = fig.add_subplot(1,2,2)
ax2.imshow(row_ins_rect, cmap=plt.cm.hot_r)
plt.show()


implot = plt.imshow(row_ins_rect, cmap="summer")#选一个漂亮的颜色
plt.show()



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", "inferno", "plasma", "magma"]),
         ("Sequential",     ["Blues", "BuGn", "BuPu",
                             "GnBu", "Greens", "Greys", "Oranges", "OrRd",
                             "PuBu", "PuBuGn", "PuRd", "Purples", "RdPu",
                             "Reds", "YlGn", "YlGnBu", "YlOrBr", "YlOrRd"]),
         ("Sequential (2)", ["afmhot", "autumn", "bone", "cool",
                             "copper", "gist_heat", "gray", "hot",
                             "pink", "spring", "summer", "winter"]),
         ("Diverging",      ["BrBG", "bwr", "coolwarm", "PiYG", "PRGn", "PuOr",
                             "RdBu", "RdGy", "RdYlBu", "RdYlGn", "Spectral",
                             "seismic"]),
         ("Qualitative",    ["Accent", "Dark2", "Paired", "Pastel1",
                             "Pastel2", "Set1", "Set2", "Set3"]),
         ("Miscellaneous",  ["gist_earth", "terrain", "ocean", "gist_stern",
                             "brg", "CMRmap", "cubehelix",
                             "gnuplot", "gnuplot2", "gist_ncar",
                             "nipy_spectral", "jet", "rainbow",
                             "gist_rainbow", "hsv", "flag", "prism"])]


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):
    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)

plt.show()







声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。