在Python脚本中设置mayaVI管道属性

时间:2019-06-09 16:01:30

标签: python matplotlib mayavi mayavi.mlab

我正在使用mayaVI来绘制3D曲面和矢量场,并具有mayavi.mlab.surf和mayavi.mlab.quiver3D函数。与Mayavi管道相比,这些函数没有很多关键字参数可以让我修改曲面和颤动的外观,在Mayavi管道中,我可以将内容编辑到最细微的细节(例如颤动箭头的半径-请参见下面的示例图) )。问题是,一旦我在mayaVI管道中进行了这些更改,似乎就无法保存这些设置,直到下一次我想重绘该图形为止。

我特别对编辑曲面的轮廓属性和矢量的字形源属性(轴半径,尖端半径,尖端长度)感兴趣。

问题:是否有一种简单的方法可以保存Mayavi管道设置直到下一次,或者直接在我的Python脚本中进行编辑(即不使用UI)?

示例: enter image description here

代码:

#!/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()

1 个答案:

答案 0 :(得分:2)

例如,要更改箭头的尖端长度,

obj = mlab.quiver3d(..., mode='arrow')
obj.glyph.glyph_source.glyph_source.tip_length = 0.9

似乎没有关于mayavi管道的完整文档,但是可以从GUI界面猜测参数:

enter image description here