我正在使用mayavi来绘制3D表面和矢量场,使用函数mayavi.mlab.surf和mayavi.mlab.quiver3D。与Mayavi管道相比,这些函数没有许多关键字参数让我修改表面和箭头的外观(例如箭头头部半径-请参见下面的示例图片)。问题在于,一旦我在mayaVI管道中进行了这些更改,似乎就没有办法保存这些设置,直到下一次我想要重绘图形。
我特别感兴趣的是编辑表面的等值线属性以及矢量的Glyph Source属性(Shaft radius、Tip radius、Tip length)。
问题: 有没有一种简单的方法可以保存Mayavi管道的设置,直到下一次使用,或者直接在我的Python脚本中编辑它们(即不使用UI)?
代码:
#!/usr/bin/env python
import numpy as np
from mayavi import mlab
xmax = 2.0*np.pi
x, y, z = np.mgrid[-xmax:xmax:25j, -xmax:xmax:25j, -xmax:xmax:1j]
v_x = np.sin(x)*np.cos(y)
v_y = np.cos(x)*np.sin(y)
v_z = np.zeros_like(z)
v_abs = np.sqrt(v_x**2 + v_y**2) # scalar field
surf = mlab.surf( x[:,:,0], y[:,:,0], v_abs[:,:,0], colormap='magma' )
obj_j = mlab.quiver3d( x[:,:,0], y[:,:,0], z[:,:,-1], v_x[:,:,0], v_y[:,:,0], v_z[:,:,0], mode='arrow')
mlab.show()