我使用matplotlib的imshow绘制了一些数据。我还设法将三种不同的色彩图组合在一起(见图),但我希望绿色从0到1000,黄色/橙色从1000到1600,红色从1600到高。它几乎是开箱即用的,但并非完全正确。谁知道我怎么能做到这一点?
colors1 = plt.cm.Greens_r(np.linspace(0, 0.4, 256))
colors2 = plt.cm.Oranges(np.linspace(0.1, 0.5, 256))
colors3 = plt.cm.Reds(np.linspace(0.6, 1, 256))
cmap = np.vstack((colors1, colors2, colors3))
cmap_test = colors.LinearSegmentedColormap.from_list('colormap', cmap)
fig, ax = plt.subplots()
plt.imshow(z, origin='upper', cmap=cmap_test, interpolation='none', extent=[0,25,5,-20])
cbar = plt.colorbar()
ax.grid(linestyle='-')
plt.show()