更改蒙版区域中的底图颜色(matplotlib)

时间:2014-08-06 17:20:08

标签: python-2.7 matplotlib colors matplotlib-basemap

我的底图颜色默认为黑色。但是,我希望在我将蒙板(负)降水值设置为黑色(在我的情况下是图像的高纬度)的区域中,底图颜色为白色。我可以在set_bad上更改alpha,但这会给我一个非首选的灰色。这很容易吗?我会发布一张图片,但我还没有10个声望点。 TIA。

datamasked = np.ma.masked_where(datam < 0.0, datam)

my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',uneven_rgb)
my_cmap.set_bad('k', 1.0)

mapproj = Basemap(projection = 'cyl', llcrnrlat=-90.0, llcrnrlon=0.0, urcrnrlat=90.0,     urcrnrlon=360.0)

mapproj.drawcoastlines()
mapproj.drawcountries()
mapproj.drawparallels(np.array([-60.0, -30.0, 0.0, 30.0, 60.0]), labels=[0,0,0,0])
mapproj.drawmeridians(np.array([0.0, 90.0, 180.0, 270.0, 360.0]), labels=[0,0,0,0])

myplot = plt.imshow(datamasked.T, interpolation = 'nearest', cmap = my_cmap, \
    norm = matplotlib.colors.Normalize(vmin = 0.0, vmax = 20.0, clip = False), \
    extent = (0.0, 360.0, -90.0, 90.0))

1 个答案:

答案 0 :(得分:1)

很容易做到。只需将set_bad中的颜色更改为&#39; k&#39;以外的任何颜色。 (即黑色)。 Matplotlib中任何可识别的颜色都可以使用。无需更改alpha值。

即。将屏蔽值更改为洋红色: my_cmap.set_bad(&#39; magenta&#39;,1.0)