在python中剪切Z值大于的曲面

在python中剪切Z值大于的曲面,python,numpy,surface,Python,Numpy,Surface,我得到了一个函数的3D曲面图,它代表了一些真实的数据。Z轴上任何大于8.5的值在物理上都是不可能的,因此我想从绘图中删除它们。我一直在努力做到这一点,任何帮助都将不胜感激: 我想将8以上的值(大部分红色)设置为NaN,但尝试此操作时,绘图显示为空。我在谷歌上搜索了一下,发现冲浪的情节和楠的(显然)不一样,我想知道这里是否有人可以帮忙 守则: fig = plt.figure() ax = fig.gca(projection='3d') X = np.arange(1.0,101.0,1.0

我得到了一个函数的3D曲面图,它代表了一些真实的数据。Z轴上任何大于8.5的值在物理上都是不可能的,因此我想从绘图中删除它们。我一直在努力做到这一点,任何帮助都将不胜感激:

我想将8以上的值(大部分红色)设置为NaN,但尝试此操作时,绘图显示为空。我在谷歌上搜索了一下,发现冲浪的情节和楠的(显然)不一样,我想知道这里是否有人可以帮忙

守则:

fig = plt.figure()
ax = fig.gca(projection='3d')

X = np.arange(1.0,101.0,1.0) 
Y = np.arange(1.0,4.1, 0.04) 


X, Y = np.meshgrid(X, Y)

Z = ((0.3973473*(np.exp(np.log10(X)))) + 0.6176893) * Y

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                    linewidth=0, antialiased=False)

今天,我用一双崭新的眼睛做到了这一点:

qt = np.linspace(1.0, 100.0, num=100)
ic = np.linspace(1.0, 4.0, num=100)

qt, ic = np.meshgrid(qt, ic)

Z = ((0.3973473*(np.exp(np.log10(qt)))) + 0.6176893) * ic

for i in np.arange(len(qt)):
    for j in np.arange(len(ic)):
        if Z[j,i] > 8:
            Z[j,i] = np.nan
        else:
            pass


fig = plt.figure()
ax = fig.gca(projection='3d')

surf = ax.plot_surface(qt, ic, Z)

plt.show()