cmap 自定义颜色卡
# 渐变色 cmap = LinearSegmentedColormap.from_list('white_to_red', ['#00FF00', '#0000FF', '#FFFF00', '#FF0000'])
# 间隔色块 cmap = mpl.colors.ListedColormap(['#00FF00', '#0000FF', '#FFFF00', '#FF0000'])
代码
import matplotlib.pyplot as plt from matplotlib.patches import Polygon import numpy as np from matplotlib import colors cmap = colors.LinearSegmentedColormap.from_list('white_to_red', ['white', 'red']) # cmap = colors.LinearSegmentedColormap.from_list('white_to_red', ['#00FF00', '#0000FF', '#FFFF00', '#FF0000']) # cmap = colors.ListedColormap(['#00FF00', '#0000FF', '#FFFF00', '#FF0000']) # norm = mpl.colors.BoundaryNorm(np.linspace(2, 3, 5), ncolors=cmap.N, clip=True) fig,ax = plt.subplots(1) verts = np.random.rand(3, 2) xmin, xmax = verts[:, 0].min(), verts[:, 0].max() ymin, ymax = verts[:, 1].min(), verts[:, 1].max() print(verts) grad = np.atleast_2d(np.linspace(0, 1, 256)).T img = ax.imshow(np.flip(grad), extent=[xmin, xmax, ymin, ymax],interpolation='nearest', aspect='auto', cmap=cmap) polygon = Polygon(verts, closed=True, facecolor='none', edgecolor='none') print(polygon) ax.add_patch(polygon) img.set_clip_path(polygon) ax.autoscale_view() plt.colorbar(img) plt.show()