12.1 Mayavi概述
12.1.1 初识Mayavi
Mayavi2(以后我们统称为Mayavi)是Mayavid的第二个版本。Mayavi是用于三维科学数据可视化的通用跨平台工具。Mayavi2致力于提供3D数据或3D绘图的简单和交互式可视化。它的主要特性包括:
对2维和3维标量、向量和张量数据进行可视化。
通过自定义源、模块和数据过滤器,易于扩展。
通过mlab进行快速绘图
Mayavi拥有强大的可扩展性能。Mayavi提供了一个自身可用的Mayavi应用程序。除此之外,Mayavi2也可以像matplotlib或gnuplotn那样作为绘图引擎在脚本中使用 ,以及在任何其他应用程序中用于交互式可视化的库。它也可以作为一个正视插件使用,允许它嵌入到其他基于正视的应用程序中。此外,Mayavi2力求成为一个可重用的工具,可以以不同的方式嵌入到库和应用程序中,或者与Envisage应用程序构建框架结合使用,以组装特定于领域的工具。
12.1.2 安装Mayavi
可以使用pip或者conda命令安装mayavi。但是,由于mayavi存在着重要的依赖关系,使得mayavi库的安装不像之前安装numpy,matplotlib等第三方库那样简单。其中两个最重要的依赖关系是:
可以通过conda list或者pip list命令来查看当前环境中已经安装的包。如果环境中已经安装相关的依赖包,则可以在接下来的安装中忽略相关安装命令。
使用pip安装
使用pip工具安装mayavi相对来说较为简单,只需要两行命令即可完成安装:
$ pip install mayavi
$ pip install PyQt5
使用conda-forge安装
在安装mayavi之前,我们首先需要添加conda-forge通道:
¥ conda config --add channels conda-forge
有关conda-forge的介绍,请参阅第二章。
接着,进入指定环境后,安装Mayvi的依赖项:
$ conda install vtk
$ conda install pyqt=5
最后,安装mayavi
$ conda install mayavi
测试mayavi安装
安装结束后,运行下列命令来测试mayavi是否被正常安装:
$ mayavi2
mayavi2是mayavi应用程序。mayavi2安装后,将会在conda环境scripts目录下自动创建mayavi2.exe应用程序。笔者的mayavi2应用程序位于C:\Users\Johan\Anaconda3\envs\iexkliu\Scripts\mayavi2.exe。可以双击mayavi2.exe来打开mayavi2应用程序。
12.1.3 Mayavi的用法
Mayavi主要有以下三种使用途径:
完全图形化地使用mayavi2应用程序。有关这方面的更多信息,请参阅第二章Mayavi应用程序部分。
使用Mayavi作为简单Python脚本(例如Ipython)和numpy的绘图引擎。mlab脚本API提供了在批处理脚本中使用Mayavi的简单方法,有关这方面的更多信息,请参见第三章mlab绘图。
用Python编写Mayavi应用程序的脚本。Mayavi应用程序本身具有一个功能强大的通用脚本API,可以使用它来适应您的需要。
您可以在使用mayavi2应用程序时编写Mayavi脚本,以便自动化任务并扩展Mayavi的行为。
您可以从自己的基于Python的应用程序中编写Mayavi脚本。
您可以使用Envisage或其他方法以多种方式将Mayavi嵌入到应用程序中。
关于这一点的更多细节可以在Mayavi的高级脚本一章中找到。
Mayavi嵌入Jupyter Lab
Mayavi库不像matplotlib和seaborn库那样可以在Jupyter Lab中开箱即用。要想在Jupyter Lab中开启对Mayavi支持, 必须得到图形后端的支持。使用不同后端将会得到不一样的输出,Mayavi可以使用“png”,“ipy”和“x3d“作为后端:
”png”后端是最简单的后端,它生成的图像可以嵌入到笔记本中。这些是静态的,而不是交互式的。
“ipy”后端(默认值):”ipy”后端的行为几乎完全像一个普通的Mayavi UI窗口,并支持任何Mayavi/VTK可视化,完全是交互式的。这个后端依赖于VTK的屏幕外支持,取决于您的VTK是如何配置的,可能需要一个窗口系统。这个后端要求安装ipywidgets和ipyevents包:
conda install ipywidgets ipyevents
“x3d”后端:“x3d后端”在笔记本上显示x3d元素。X3D输出生成一个完全交互式的3D场景,但是,这将不支持VTK的交互式小部件。它也不支持透明和其他高级可视化。有关如何与X3D场景交互的信息,请参见:http://www.x3dom.org/documentation/interaction/
需要运行mlab.init_notebook()语句来使用特定的后端:
from mayavi import mlab
mlab.init_notebook('ipy')
另外,Mayavi附带了一些javascript文件,可以安装为:
jupyter nbextension install --py mayavi --user
这将在本地安装x3dom Javascript和CSS文件。注意,在运行上述操作之后,您不需要“启用”扩展或任何东西。、
Last updated
Was this helpful?