您需要为 LinearSegmentedColormap 制作自定义颜色图。LinearSegmentedColormap 文档中给出了如何理解下面的颜色图字典的解释:
# Create the desired color dictionary
cdict = { 'red' : ((0.0, 0.0, 0.0),
(0.3, 1.0, 1.0),
(0.5, 1.0, 1.0),
(0.7, 0.0, 0.0),
(1.0, 0.0, 0.0)),
'green' : ((0.0, 0.0, 0.0),
(0.3, 0.0, 0.0),
(0.5, 1.0, 1.0),
(0.7, 0.0, 0.0),
(1.0, 0.0, 0.0)),
'blue' : ((0.0, 0.0, 0.0),
(0.3, 0.0, 0.0),
(0.5, 1.0, 1.0),
(0.7, 1.0, 1.0),
(1.0, 0.0, 0.0)),
}
# Create a colormap from the above dictionary
cmap = LinearSegmentedColormap('CustomColormap', cdict, 1024)
# Use the colormap in your plot
contour = pcolormesh(X,Y,Z,cmap=cmap)
# Supply the contour to the colorbar
colorbar(contour)
基本上,颜色映射只能从 0 到 1 存在,因此要在 -5、-2、0、2 和 5 发生颜色变化,您需要点位于 0 (-5)、0.3 (-2)、 0.5 (0)、0.7 (2) 和 1 (5)。
要获得您想要的效果,您需要确保在 -5 到 5 的范围内绘制,然后将颜色条设置为仅显示 0 到 3。