链接你送有以下几点:
但是,如果我认为那些颜色表是丑陋?那么,只需使用matplotlib.colors.LinearSegmentedColormap让你的 自己。首先,创建一个 脚本,该脚本将范围(0,1)映射到RGB光谱中的值。在 这个字典中,你将有一系列元素为每个颜色 “红色”,“绿色”和“蓝色”。这些颜色 系列中的每一个中的第一个元素需要从0到1进行排序,其间的任意间距为 。现在,请考虑下面的'红色'系列中的(0.5,1.0,0.7)。 这个元组说,在(0,1)范围内的0.5处,从下面的 内插到1.0,以及从0.7以上的内插。通常,每个 元组中的后两个值将相同,但使用不同值有助于 在您的色彩映射中进行中断。这可能比 声音更容易理解,这表现在这个简单的脚本:
1 from pylab import *
2 cdict = {'red': ((0.0, 0.0, 0.0),
3 (0.5, 1.0, 0.7),
4 (1.0, 1.0, 1.0)),
5 'green': ((0.0, 0.0, 0.0),
6 (0.5, 1.0, 0.0),
7 (1.0, 1.0, 1.0)),
8 'blue': ((0.0, 0.0, 0.0),
9 (0.5, 1.0, 0.0),
10 (1.0, 0.5, 1.0))}
11 my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256)
12 pcolor(rand(10,10),cmap=my_cmap)
13 colorbar()
这不正是你想要的?
这里有一个如何与您提供的图片做一个例子:
import matplotlib
from matplotlib import pyplot as plt
from pylab import *
img = ones((5,5))
img[1][1] = 2
cdict = {'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.7),
(1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 1.0, 1.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 0.5, 1.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256)
plt.pcolor(img,cmap=my_cmap)
plt.colorbar()
plt.show()
另外,如果你真的想为你链接到例如规定了一些映射到你可以使用discrete_cmap颜色,这里是scipy文档提供的示例方法:
def discrete_cmap(N=8):
"""create a colormap with N (N<15) discrete colors and register it"""
# define individual colors as hex values
cpool = [ '#bd2309', '#bbb12d', '#1480fa', '#14fa2f', '#000000',
'#faf214', '#2edfea', '#ea2ec4', '#ea2e40', '#cdcdcd',
'#577a4d', '#2e46c0', '#f59422', '#219774', '#8086d9' ]
cmap3 = col.ListedColormap(cpool[0:N], 'indexed')
cm.register_cmap(cmap=cmap3)
我不明白如何使用此信息来执行我所需的操作。 – Brian
对不起 - 我已经添加了一个例子,这是更有帮助吗?告诉我,如果没有,我会进一步详细。 –