Я пытаюсь создать график, в котором маскированные значения имеют серый цвет, а не белый по умолчанию.
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)