我正在尝试使用contourf在matplotlib中生成填充的等高线图。 在底部附近以锯齿状模式缺少数据。 等高线图不仅在原始数据掩盖的位置为空白,而且在等高线算法无法干净地插值因为好的数据邻域不足的口袋中也是如此。
我知道如何扩展数据集以在这些口袋中产生合理的等高线。 但是,如果我绘制扩展的数据,就会得到填充的等高线图。 我想用黑色或白色掩盖原始数据缺失的区域。
在以前的主题上,我学习了如何通过绘制第一张图像,然后用另一张图像覆盖它来遮盖坏区域。 下面的代码片段的类似物,但不适用于等高线...我无法让bad_data imshow覆盖扩展的contourf图。 可能吗?
谢谢, Eli
我知道如何扩展数据集以在这些口袋中产生合理的等高线。 但是,如果我绘制扩展的数据,就会得到填充的等高线图。 我想用黑色或白色掩盖原始数据缺失的区域。
在以前的主题上,我学习了如何通过绘制第一张图像,然后用另一张图像覆盖它来遮盖坏区域。 下面的代码片段的类似物,但不适用于等高线...我无法让bad_data imshow覆盖扩展的contourf图。 可能吗?
谢谢, Eli
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()