我想要使用plt.imshow()显示数据,使用红色阴影表示正值,使用绿色阴影表示负值,从零到绿色到红色的急剧过渡,因此很容易看出值是否为积极的或消极的。我在matplotlib的内置色彩图中找到的最接近的是'PiYG',但它显示的是紫色而不是红色,我更喜欢在颜色变化的点处进行更清晰的过渡,而不是黄色的色调。你知道如何用我想要的属性获得一个好的色彩映射吗?
答案 0 :(得分:0)
我使用下面的代码来定义我自己的色彩图,这似乎给出了一个合理的结果,但我认为仍然可以改进:
cdict = {'red': ((0.0, 0.0, 0.0),
(1/6., 0.0, 0.0),
(1/2., 0.8, 1.0),
(5/6., 1.0, 1.0),
(1.0, 0.4, 1.0)),
'green': ((0.0, 0.0, 0.4),
(1/6., 1.0, 1.0),
(1/2., 1.0, 0.8),
(5/6., 0.0, 0.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(1/6., 0.0, 0.0),
(1/2., 0.9, 0.9),
(5/6., 0.0, 0.0),
(1.0, 0.0, 0.0))
}
cmap=LinearSegmentedColormap('rg',cdict, N=256)