2013-04-30 105 views
0

我有一个浮动列表范围从0.01到1.0。我将它们分配给矩阵上的特定点。在我将它们分配到某一点时,它们覆盖了整个颜色谱图1.0,从黑到白都是0.我怎样才能使它们只覆盖绿色和红色。漂浮在一个矩阵颜色红色到绿色

for x, y in arr_bool3: 
      zeros_and_ones[x, y] = confindencenumbers[count]##set so binary matrix knows where to plot 
     count=count+1 


    ax.imshow((zeros_and_ones), cmap=plt.cm.spectral_r, interpolation='none') ##Draw matrix 

arr_bool3是坐标和confindencenumbers是浮

列表

回答

0

代替使用一个单一的浮动(这意味着“灰度”)的列表中,按照在此连结的指示:http://matplotlib.org/api/colors_api.html

正如你所看到的,你通过指定RGB元组来获得“颜色”(而不是灰色)。通过将B属性设置为零,你会得到红色和绿色。如果你想为一个值myValue 0 =红色1 =绿色转换,然后做

red = 1 - myValue 
green = myValue 
blue = 0 

你自己看着办吧从这里我敢肯定。

1

你总是可以build your own彩色地图使用LinearSegmentedColormap

import pylab as plt 
cdict = {'red': ((0.0, 1.0, 1.0), 
       (1.0, 0.0, 0.0)), 
     'green': ((0.0, 0.0, 0.0), 
        (1.0, 1.0, 1.0)), 
     'blue': ((0.0, 0.0, 0.0), 
        (1.0, 0.0, 0.0))} 

my_cmap = plt.matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256) 
plt.pcolor(plt.rand(10,10),cmap=my_cmap) 
plt.colorbar() 
plt.show() 

enter image description here

相关问题