如何在底图上保持相同的色阶?

How to maintain the same color scale on Basemap?

我正在绘制一些积雨图,但是它们的色阶不同,所以我无法比较显示的地图。有一些方法可以获得具有相同色标的地图。下面是我的代码。

def plotea_fig(map,tite): 
    fig = pl.figure(figsize=(8,6), edgecolor='W',facecolor='W')
    m = Basemap(projection='merc', llcrnrlat=-5.125, urcrnrlat=14.125, llcrnrlon=-80.125, urcrnrlon=-65.5, resolution='i')
    m.drawcoastlines(linewidth = 0.8)
    m.drawstates(linewidth = 0.3)
    m.drawcountries(linewidth = 0.8)
    m.drawparallels(np.arange(-5, 14.9583, 5),labels=[1,0,0,1])
    m.drawmeridians(np.arange(-170,-60,5),labels=[1,0,0,1])
    x,y = m(lons,lats)
    CS1 = m.contourf(x,y,map, 35, cmap=pl.cm.jet_r, animated=True) 
    cb = m.colorbar(CS1, size="5%", pad="2%")
    cb.ax.tick_params(labelsize=20) 
    pl.xlabel('LONGITUDE')
    pl.ylabel('LATITUD')
    pl.title(title) 
    pl.savefig(title,bbox_inches='tight', formart = 'png')

    return m

而不是简单地说你想要 35 等高线,你应该指定你想要绘制的等高线。例如:

m.contourf(x, y, map, np.linspace(5, 10, 35), extend='both',
           cmap=pl.cm.jet_r, animated=True)

这指定您想要 5 和 10 之间的 35 个轮廓。extend='both' kwarg 表示数据 above/below 5/10 应该用 top/bottom 颜色着色。这会将 'pointy ends' 添加到您的颜色栏,有些人不喜欢,但其他人觉得更明确。查看 my answer to this question 了解更多详情。