我正在使用matplotlib在同一个图上绘制多个曲面,我想只看到最顶层的曲面,就像matlab所示.
Matlab 3D视图:

Matlab顶视图:

Matplotlib 3D视图:

Matplotlib顶视图:

我怎样才能让Matplotlib显示类似于Matlab的结果,其中最顶层的类显示在顶部,而不是一个类优先于另一个?
我正在使用matplotlib 1.1.0绘制表面.
绘图Z轴被掩盖如下:
Zm = ma.masked_where((abs(z_grid) < 1.09) & (abs(z_grid) > 0.91), (z_surface))
surf = ax.plot_surface(X, Y,Zm, rstride=2, cstride=2, cmap=colors,linewidth=0, antialiased=False)
Run Code Online (Sandbox Code Playgroud)
但我没有看到在情节上应用的面具.我将面具本身绘制为子图
surf = ax.plot_surface(X, Y,ma.getmask(Zm), rstride=2, cstride=2, cmap=colors,linewidth=0, antialiased=False)
Run Code Online (Sandbox Code Playgroud)
哪个有效,所以我知道我的面具实际上包含真值.
完整代码:
from pylab import *
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
import numpy
from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib import patches
from matplotlib.figure import Figure
from matplotlib import rcParams
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(1, 2, 1,projection='3d')
pole_positions_orig = [-0.6+0.73j];
zero_positions_orig = [0.29-0.41j];
surface_limit = 1.7;
min_val …Run Code Online (Sandbox Code Playgroud)