我也发现彩色地图的创建令人困惑。LinearSegmentedColormap很好,因为它非常灵活,但是cdict需要一些习惯。
用这种方法制作彩色地图的第一件事,也许也是最重要的一件事,就是你要理解RGB colors。基本上,每种颜色都有一个从0到1的强度值,值越高,该颜色的强度值就越多。在RGB颜色空间中,白色表示为所有三种颜色,即1,黑色表示为所有三种颜色0。
学习用这种方法制作彩色地图的第二件事很重要:在创建简单的线性彩色地图之前,始终使每个元组的第二个和第三个值相同。最终,您可以更改这些值以使颜色映射中的不连续性,但这只会在开始时使您感到困惑。
好的,所以每个元组中的第一个值是颜色映射的“分数”,这些值必须从0到1,第二个和第三个值是该颜色的强度(下限和上限)。因此,要制作一个“黑白黑”的颜色贴图,您需要:cdict1 = {
'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0)),
'green': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0)),
}
black_white_black = LinearSegmentedColormap('BlackWhiteBlack', cdict1)
例如plt.imshow(np.arange(100).reshape(10,10), cmap=black_white_black, aspect='auto')
plt.colorbar()
祝你好运!