在Matplotlib中更改掩码值的颜色

时间:2019-06-13 13:46:29

标签: python matplotlib matplotlib-basemap masking

我正在尝试创建一个将蒙版值设置为灰色而不是默认的白色的图。

Z是所有值的无掩码数组,并产生此图: xZ是一个带掩码的数组(除了美国西南部和喜马拉雅山脉以外,几乎所有值都很大,但是在那里)。 我想使xZ中所有在Z中具有颜色的空白变为灰色,而不是白色。

Z:unmasked Plot XZ:masked Plot

代码

def plotErrorPoints3(mask_array):
    interval = (data_max - data_min)/100
    range_list = np.arange(data_min, data_max, interval)  

    fig = plt.figure(figsize=(15,4.76), dpi=100)
    fig.clf()
    plt.axes([0,0,1,1], frameon=False)
    plt.title(print_date_time + " " + variable_name)
    m = Basemap(projection='cyl', llcrnrlat=-90, urcrnrlat=90, llcrnrlon=left_lon, 
                 urcrnrlon=right_lon, resolution='c')
    X, Y = np.meshgrid(lon, lat)
    Z = unmasked[:]
    xz = mask_array[:]
    contour = m.contourf(X, Y, Z, range_list)

#TESTING COMPONENTS
range_plot = plotErrorPoints3(masked_range)

我尝试使用其他问题上的建议,但只是在整个地图上得到一个黑色正方形,而不是仅在陆地上。

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

0 个答案:

没有答案