Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib颜色栏上指定边界_Python_Matplotlib_Colormap - Fatal编程技术网

Python 在matplotlib颜色栏上指定边界

Python 在matplotlib颜色栏上指定边界,python,matplotlib,colormap,Python,Matplotlib,Colormap,我使用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.

我使用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()

您可能希望对[0,1]中的每个颜色贴图进行采样,但在堆叠之前,请更改采样点数。谢谢!一些数学和它做的把戏@tacaswell:)、和其中的链接。