我有一个x,y,z数据数组,坐标不规则地间隔开。此外,坐标也不会填充规则的矩形空间。下面显示的是我的数据的坐标图。
我要绘制的是这组数据的轮廓图。我已经尝试过 scipy.interpolate.griddata 将我的数据隐藏到网格中,并使用 plt.contourf 绘制等高线图。
x_min, y_min = 0, 0
x_max, y_max = x_val.max(), y_val.max()
xi = np.linspace(x_min, x_max+0.001, 500)
yi = np.linspace(y_min, y_max+0.001, 500)
zi = griddata((x_val, y_val, z_val, (xi[None,:], yi[:,None]), method='cubic')
plt.figure()
CS = plt.contourf(xi,yi,zi,200,cmap=plt.cm.jet)
plt.show()
下面是我得到的等高线图。显然,凸包未正确遵循我的数据边界,并在某些空白区域中导致错误的数据插值。我可以知道如何解决此问题吗?
-----------更新11/07 ------------
您好,我针对此问题做出了解决方法,但这有点用武力。不知道是否有人有更好的主意。我的方法是在griddaa zi中手动将不需要的区域值设置为np.nan。请参考图片以了解我的工作。