基于【matplotlib】【imshow】【cmap】绘制【numpy.ndarray】二维数组的“二维码”
基于 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()
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。