Mayavi:曲面图和3D轮廓

时间:2019-05-31 21:24:08

标签: python matplotlib surface mayavi mayavi.mlab

大家晚上好,我是Matplotlib的长期用户,我最近发现了Mayavi。

使用Matplotlib,我可以绘制3D表面,并具有每个轴的曲面图的投影轮廓。我想知道Mayavi是否可以做到这一点。

以下是我到目前为止使用Matplotlib(source)所做的一个示例,但是我无法找到在Internet上使用Mayavi绘制轮廓的类似方法:

enter image description here

可以认识Mayavi的人告诉我是否可以像Matplotlib一样为每个轴绘制3D轮廓吗?


Matplotlib代码

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

ax.set_xlabel('X')
ax.set_xlim(-40, 40)
ax.set_ylabel('Y')
ax.set_ylim(-40, 40)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

Mayavi代码

from mpl_toolkits.mplot3d import axes3d
from mayavi import mlab

X, Y, Z = axes3d.get_test_data(0.05)

Z = np.rollaxis(Z,0,2)
X = np.rollaxis(X,0,2)
Y = np.rollaxis(Y,0,2)

mlab.surf(X, Y, Z, warp_scale="auto", opacity=1)
mlab.axes(xlabel='X', ylabel='Y', zlabel='Z')
mlab.show()

0 个答案:

没有答案