你好我不知道这有什么问题。我有这个mgrib的z值
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)
但我不知道为什么。
对不起我的英文
答案 0 :(得分:0)
你好我回答我的问题。我认为这是语法错误。
创建一个有两种颜色的词典
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))}
将alpha通道设为3分
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]