3
我使用python中的颜色映射来绘制和分析矩阵中的值。我需要将白色与每个等于0.0的元素相关联,而对于其他元素,我希望有一个“传统”颜色地图。看着Python Matplotlib Colormap我修改使用令pColor作为字典:Matplotlib python更改颜色映射中的单一颜色
dic = {'red': ((0., 1, 1),
(0.00000000001, 0, 0),
(0.66, 1, 1),
(0.89,1, 1),
(1, 0.5, 0.5)),
'green': ((0., 1, 1),
(0.00000000001, 0, 0),
(0.375,1, 1),
(0.64,1, 1),
(0.91,0,0),
(1, 0, 0)),
'blue': ((0., 1, 1),
(0.00000000001, 1, 1),
(0.34, 1, 1),
(0.65,0, 0),
(1, 0, 0))}
结果:
我设置:
matrix[0][0]=0 matrix[0][1]=0.002
但是你可以看到,他们都与白色相关颜色,即使我设置了0.00000000001作为蓝色的起点。这怎么可能?我如何改变它以获得我想要的?
能告诉我到底你在哪里设置为“不连续”的选项?插值='无'? – 2013-04-23 12:48:36
它在你的colormap dictonairy中。格式为(x,y1,y2),请注意,对于你的y1和y2是相等的,我的变化。在这种情况下,使用我的色彩映射表示值_till_零对于rgb(如此白色)具有1的颜色,但对于红色和绿色,值_from_零的值为0,对于蓝色(蓝色)则值为1。 请参阅: http://matplotlib.org/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap – 2013-04-23 13:05:30
但是,如果我像你那样定义字典,我还需要使用:np.ma.masked_values(matrix,0)作为imshow()的参数,否则“技巧”不起作用。 – 2013-04-23 13:28:32