Mayavi 提示¶
日期 | 2015-10-29 (最后修改), 2006-06-13 (创建) |
---|
简介¶
以下是一些关于如何最好地使用 !MayaVi2 的一般性提示。
有效地编写 MayaVi2 脚本¶
以下是一些提示,展示如何以交互式和有效的方式编写 mayavi2 脚本。
拖放对象¶
运行 contour.py python 脚本示例,您应该得到
首先,在“视图”菜单中单击“Python”以启用 Python shell。一个 Python shell 应该出现在 !MayaVi2 窗口的底部
然后将左侧树视图中的任何对象拖放到 Python shell 上,您将获得该对象。假设您想获取 Outline 模块
现在,您可以通过两种方式使用您的对象:直接在 Python shell 中键入或使用 explore() 方法。
在 Python shell 中键入¶
您可以在 Python shell 窗口中创建对象的实例。
请注意,您可以在此 Python shell 中使用“单词补全”,即一个小窗口弹出,让您选择预期对象或方法的名称。
因此,您可以显示轮廓颜色的 RGB 值,例如
但是,找出对象或方法可能并不容易:您可能不知道它们是如何相互依赖的。更简单的方法是使用 explore() 方法。
使用 explore() 方法¶
只需键入
explore(_)
或
explore(foobar)
如果你之前已经定义过它
然后,你会看到以下窗口
考虑到最后一个例子,关于轮廓模块的颜色,你可以展开“树”,从而获得你需要的的信息
非常强大,不是吗!:-)
你也可以在python shell中工作,创建你的对象等等...
在python shell中工作¶
在!MayaVi2应用程序的嵌入式Python shell中,名称'mayavi'绑定到!MayaVi脚本接口,它可以用来轻松地编写mayavi脚本,如下所示
e = mayavi.engine # Get the MayaVi engine.
mayavi.new_scene() # Create a new scene
# [...]
mayavi.save_visualization('foo.mv2')
mayavi.load_visualization('foo.mv2')
请注意,Mayavi引擎允许你以强大的方式编写mayavi脚本。例如
e = mayavi.engine
这里'e'是正在运行的引擎实例(mayavi/engine.py),它具有与你在mayavi树视图中看到的相同的层次结构。例如
e.scenes[0] # --> first scene in mayavi.
e.scenes[0].children[0] # --> first scene's first source (vtkfile)
另一个例子,只需运行examples/contour.py并键入/剪切/粘贴以下内容以获得标量切割平面模块
e = mayavi.engine
s = e.scenes[0].children[0].children[0].children[-1]
# Think scene.datafile.module_manager.last_module
可以从IPython内部使用Mayavi2并编写脚本。你必须首先使用'-wthread'命令行选项启动IPython。以下是一个例子
from enthought.mayavi.app import Mayavi
m = Mayavi()
m.main()
m.script.new_scene() # m.script is the mayavi.script.Script instance
engine = m.script.engine
在上面,'m.script'与嵌入式shell上的'mayavi'实例相同。
如果你正在编写一个独立的脚本来可视化某些内容,例如examples/目录中的脚本,请使用任何示例作为模板。
保存快照¶
在python脚本中保存快照非常容易
s = script.engine.current_scene
s.scene.save('test.jpg', size=(width,height))
你也可以保存许多其他格式的图像:!PostScript (ps),Encapsuled !PostScript (eps),PDF (pdf),Bitmap (bmp),TIFF (tiff),PNG (png),!OpenInventor (iv),Virtual Reality Markup Language (wrl, vrml),Geomview (oogl),!RenderMan RIB (rib),Wavefront (obj)。
保存快照的明显推论是保存大量快照,以便例如制作电影,而无需为每个记录的快照弹出!MayaVi2窗口。
答案很简单(仅在UN*X盒子下):使用“X虚拟帧缓冲区”。
以下几行提供了技巧。当然,你可以通过在shell、python等中编写脚本来改进它。
* 使用以下命令创建你的X虚拟帧缓冲区:'xvfb :1 -screen 0 1280x1024x24'。 它将使用显示器#1,大小为1280x1024,颜色深度为24位;
* 导出您的显示器:'export DISPLAY=:1' (sh/bash 语法) 或 'setenv DISPLAY :1' (csh/tcsh 语法)
* 像往常一样运行您的 !MayaVi2 脚本;
* 完成后,所有快照都已创建,不要忘记杀死 X 虚拟帧缓冲区并重置您的显示器到其先前值。如果没有,您将无法看到您的电影;-)
在颜色映射中启用 Alpha 透明度¶
将模块管理器拖动到 Python shell,您将能够通过以下方式在颜色映射中启用 Alpha 透明度
dragged.scalar_lut_manager.lut.alpha_range=(0,1)
设置 MayaVi2 会话颜色¶
运行 !MayaVi2,转到“工具”菜单,然后选择“首选项”,然后选择“TVTK 场景”。
假设您要更改背景颜色:单击“背景颜色”标签。
在这里,您可以选择预定义的颜色,或者单击方块以设置您的 RGB 值,例如。
此外,如果您要设置前景颜色,它将应用于所有模块和过滤器,即轮廓颜色、文本颜色、标签轴等等。
您的首选项将保存在 !MayaVi2 配置文件中,因此每次运行 !MayaVi2 会话时,您都会获得这些颜色。
= 使用 TVTK 编写 VTK 数据文件 =
敬请期待...
章节作者:Unknown[6]、GaelVaroquaux、FredericPetit、Pauli Virtanen
附件