我刚刚开始使用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)
#plotting using mayavi
mlab.mesh(x,y,z,representation='wireframe', color=(0,0,1))
您会看到输出有所不同:matplotlib打印常数为phi
和theta
的行。但是,Mayavi还会打印连接这些路径的对角线(以黄色突出显示)。
我更喜欢matplotlib版本。有没有办法用mayavi达到相同的线框?
TIA
答案 0 :(得分:0)
使用mlab.surface()代替mlab.mesh()