漂浮在矩阵颜色红色到绿色

时间:2013-04-30 13:44:30

标签: python colors matplotlib

我有一个从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是浮动列表

2 个答案:

答案 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

答案 1 :(得分:0)

请按照此链接中的说明操作,而不是使用单个浮点(暗示“灰度”):http://matplotlib.org/api/colors_api.html

如您所见,通过指定RGB元组,您可以获得“颜色”(而不是灰色)。通过将B属性设置为零,您只获得红色和绿色。如果要将值myValue从0 =红色转换为1 =绿色,请执行

red = 1 - myValue
green = myValue
blue = 0

你可以从这里弄明白我确定。