Mayavi-在线框中隐藏“对角线”

时间:2018-09-18 12:17:41

标签: python matplotlib mayavi mayavi.mlab

我刚刚开始使用mayavi,并且想知道是否有一种方法可以绘制类似于我在matplotlib 3d中使用的表面的线框表示。

最小示例:

# sphere example
import numpy as np
from mayavi import mlab
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# azimut and polar angle
phi = np.linspace(0,2*np.pi,10)
theta = np.linspace(0,np.pi,10)
phi, theta = np.meshgrid(phi,theta)

# cartesian coordinates
x = np.cos(phi)*np.sin(theta)
y = np.sin(phi)*np.sin(theta)
z = np.cos(theta)

#plotting using matplotlib
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(x,y,z)

enter image description here

#plotting using mayavi
mlab.mesh(x,y,z,representation='wireframe', color=(0,0,1))

enter image description here

您会看到输出有所不同:matplotlib打印常数为phitheta的行。但是,Mayavi还会打印连接这些路径的对角线(以黄色突出显示)。

我更喜欢matplotlib版本。有没有办法用mayavi达到相同的线框?

TIA

1 个答案:

答案 0 :(得分:0)

使用mlab.surface()代替mlab.mesh()