маскирующая часть контурного участка в matplotlib

Я пытаюсь создать заполненный контурный график в matplotlib, используя contourf. Данные отсутствуют в виде зубчатой структуры в нижней части графика. График контура получается пустым не только там, где маскируются исходные данные, но также и в карманах, где алгоритм контура не может точно интерполировать, поскольку существует недостаточная окрестность хороших данных.

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

В предыдущей теме я узнал, как сделать это для изображения, построив первое изображение, а затем накрыв его другим изображением, маскирующим плохие области. Аналогом будет фрагмент кода, приведенный ниже, но он не работает для контура ... Я не могу заставить imshow bad_data скрыть расширенный график контура. Является ли это возможным?

Спасибо Эли

import matplotlib.pyplot as plt
lev = [0.0,0.1,0.2,0.5,1.0,2.0,4.0,8.0,16.0,32.0]           
norml = colors.BoundaryNorm(lev, 256)
# this is the contour plot, using extended_data so that the contours are plausibly extended
cs = plt.contourf(x,z,extended_data,levels = lev, cmap = cm.RdBu_r,norm = norml) 
# now the attempt to cover it up -- but imshow will not cover up the original plot as it will with another image
bad_data = np.ma.masked_where(~data.mask, data.mask, copy=True) 
plt.imshow(bad_data, interpolation='nearest', aspect = 'auto', cmap=cm.gray)
plt.show()

Ответы на вопрос(1)

Ваш ответ на вопрос