我有一个从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 :(得分: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()
答案 1 :(得分:0)
请按照此链接中的说明操作,而不是使用单个浮点(暗示“灰度”):http://matplotlib.org/api/colors_api.html
如您所见,通过指定RGB元组,您可以获得“颜色”(而不是灰色)。通过将B属性设置为零,您只获得红色和绿色。如果要将值myValue
从0 =红色转换为1 =绿色,请执行
red = 1 - myValue
green = myValue
blue = 0
你可以从这里弄明白我确定。