我有一些 numpy 数组,其中包含我可以在 2D 网格上可视化的数据。有些数据是非物理的,我想屏蔽这些数据。但是,我不知道如何正确设置 mask 属性tricontour
。我试过:
import matplotlib.pyplot as mp
import numpy as np
with open('some_data.dat', 'r') as infile:
x, y, z = np.loadtxt(infile, usecols=(0, 1, 2), unpack=True)
isbad = np.less(z, 1.4) | np.greater(z, 2.1)
mp.tricontourf(x, y, z, mask = isbad)
Run Code Online (Sandbox Code Playgroud)
但结果数字根本没有被掩盖。我尝试在 matplotlib 中屏蔽轮廓图的一部分,即
z2 = np.ma.array(z, mask= isbad)
mp.tricontourf(x, y, z2)
Run Code Online (Sandbox Code Playgroud)
这也不起作用。我想使用tricontourf
instrad of contourf
,因为我不想对数据进行网格化。
z[isbad] = np.nan
Run Code Online (Sandbox Code Playgroud)
调用 tricontourf 时导致分段错误
这是图,红色是我想标记为非物理的颜色。