Изменение цвета маскируемых значений в Matplotlib - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь создать график, в котором маскированные значения имеют серый цвет, а не белый по умолчанию.

Z является немаскированным массивом всех значений и создает этот график: xZ - это маскированный массив (из почти всех значений, кроме SW US и Himilayans - они довольно малы, но есть). Я хочу, чтобы все пустое пространство в xZ, имеющее цвет в Z, было серым, а не белым.

Z: График без маски XZ: Участок в маске

код

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)
...