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 是浮点数列表

4

2 回答 2

1

您始终可以使用构建自己的颜色图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()

在此处输入图像描述

于 2013-04-30T13:58:12.317 回答
0

不要使用单个浮点数(这意味着“灰度”),请按照以下链接中的说明进行操作:http: //matplotlib.org/api/colors_api.html

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

red = 1 - myValue
green = myValue
blue = 0

我敢肯定,你可以从这里弄清楚。

于 2013-04-30T13:49:07.107 回答