您好,我不知道这是怎么回事。我有一个z值的mgrib
pp=array(Arrays) #This is my Array that extract a Grid
y,x=np.mgrid[slice(0,25, 1),slice(0,42, 1)]
z=pp[y,x,1] #Extract Z with x,y position in the Array of pp执行时:
cmap = plt.get_cmap('Azul-Rojo-Alpha')
norm = matplotlib.colors.Normalize(vmax=pp[:,:,1].max(), vmin=pp[:,:,1].min())
plt.imshow(z, cmap=cmap, norm=norm, interpolation='nearest')给我这个错误:
ValueError: data mapping points must start with x=0. and end with x=1如果选中该选项,并且错误在此处:
cdict1 = {
'red': (( 0.0, 0.0, (7.0/255.0)),
(1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, (183.0/255.0)),
(0.0, (44.0/255.0), 1)),
'blue': ((0.0, 0.0,1.0),
(1.0, 0.0, 1.0))
}
cdict1['alpha'] = ((0.0, 1.0, 1.0),
(0.5, 0.0, 0.0),
(1.0, 1.0, 1.0))
TEMPE = LinearSegmentedColormap('Azul-Rojo-Alpha', cdict1)
plt.register_cmap(cmap=TEMPE)但我不知道为什么。
对不起,我的英语
发布于 2014-01-23 00:24:34
你好,我回答我的问题。我认为这是语法错误。
创建具有两种颜色的字典
cdict1 = {
'red': (( 0.0, 0.0, 0.0),(1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.717),(1.0, 0.17, 0.17)),
'blue': ((0.0, 1.0,1.0),(1.0, 0.0, 0.0))}使用3个点放置alpha通道
cdict1['alpha'] = ((0.0, 1.0, 1.0),(0.5, 0.0, 0.0),(1.0, 1.0, 1.0))创建colorMap
TEMPE = LinearSegmentedColormap('Azul-Rojo-Alpha', cdict1,N=256,gamma=0.75) 寄存器颜色映射
plt.register_cmap(name='temp',cmap=TEMPE)Normalice颜色为网格的最大值和最小值
norm = matplotlib.colors.Normalize(vmax=pp[:,:,1].max(), vmin=pp[:,:,1].min(), clip = True)调用颜色映射
cmap = plt.get_cmap('temp')创建镜像
plt.imshow(z[::-1], cmap=TEMPE, norm=norm , interpolation='nearest') #extent=[0,42,0,25]https://stackoverflow.com/questions/21286678
复制相似问题