鏈接你送有以下幾點:
但是,如果我認爲那些顏色表是醜陋?那麼,只需使用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
對不起 - 我已經添加了一個例子,這是更有幫助嗎?告訴我,如果沒有,我會進一步詳細。 –