python - 在等高线中绘制 NaNs 区域的边界
问题描述
我正在尝试用 NaN 绘制一些数据(无解决方案)。我想用黑线表示 NaN 的边界。到目前为止,我只找到了如何孵化整个 NaN 区域(在 matplotlib 的轮廓图中孵化一个 NaN 区域),但我只想要轮廓。
fig, ax = plt.subplots()
d = np.random.rand(10, 10)
d[2, 2], d[3, 5] = np.nan, np.nan
plt.contour(d)
plt.show()
我得到:
我想要:
解决方案
您可以绘制被遮蔽区域的另一个轮廓。为此,人们将使用numpy.ma
数组屏蔽数据。然后使用它的掩码在接近(但不完全)零的水平上绘制另一个轮廓。
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
d = np.random.rand(10, 10)
mask = np.zeros(d.shape, dtype=bool)
mask[2, 2], mask[3, 5] = 1, 1
masked_d = np.ma.array(d, mask=mask)
plt.contour(masked_d)
plt.contour(mask, [0.01], colors="k", linewidths=3)
plt.show()
推荐阅读
- google-sheets - 有没有办法有条件地格式化数据验证条目以更改单元格本身的值?
- python - 我似乎无法在我的 main 中正确调用我的方法
- http - 如何阻止某些 HTTP 标头字段?
- solr - Solr.log 文件未使用最新信息进行更新
- sql - 使用 MERGE 语句时语法不正确
- python - FizzBuzz 还打印包含 3 和 5 的数字
- perl - 使用 DateTime 在 Perl 中显示 12 小时制时间
- r - 根据 Shiny R 中的单选按钮选择过滤列
- html - 如何传递图像下的文本,其中两列在引导程序上定义为图像,另一列用于文本?
- ios - 有人可以在发布图片时帮助我解决一个奇怪的 firebase 错误吗?