Mayavi 简介
Mayavi 是一个功能强大的 Python 库,旨在简化三维科学数据的可视化过程。它基于 VTK(Visualization Toolkit),提供了灵活且易于使用的接口来创建高质量的图形和动画。Mayavi 可以用来绘制标量场、向量场、等值面等多种类型的三维数据。
主要特点
- 丰富的可视化组件:包括等值面、流线、矢量箭头、体积渲染等。
- 用户友好的界面:除了编程接口外,Mayavi 还提供了一个交互式的 GUI,使得非程序员也能轻松进- 行复杂的数据可视化。
- 跨平台支持:可以在 Windows、macOS 和 Linux 上运行。
- 集成性强:可以与 Python 生态系统中的其他科学计算库(如 NumPy、SciPy)无缝结合使用。
应用场景
- 科学研究:如气象学、地球物理学、生物学等领域中的数据分析。
- 工程模拟:例如流体力学模拟结果的可视化。
- 教育教学:帮助学生理解复杂的三维结构和概念。
使用 Conda 安装Mayavi
推荐使用 Conda 安装Mayavi,因为Conda可以处理Mayavi的各种依赖关系。除了VTK可能需要手动安装外,其他依赖包都可以自动安装,后面会详细说明VTK如何手动安装。
1. 创建并激活 Conda 环境
为了确保环境的隔离性,建议为 Mayavi 创建一个新的 Conda 环境。
(1) 创建新环境
conda create -n study python=3.8
这里指定 Python 版本为 3.8,你可以根据需要选择其他版本(如 3.7 或 3.9)。study可以换成自己取的其他的conda环境名字
(2) 激活环境
conda activate study
2. conda 自动安装 Mayavi 和 VTK
Mayavi 依赖于 VTK,因此需要同时安装这两个包。推荐使用 conda-forge 通道,因为它提供了最新且兼容的版本。这一步是自动安装VTK,但是安装完了之后python中import vtk 有可能会出错,报找不到vtkIOExodus、vtkIONetCDF、vtkIOMINC这三个库,如果出错的话到第3步,手动安装VTK。也可以跳过第2步到第3步骤,直接手动安装VTK。
(1) 安装 Mayavi 和 VTK
conda install -c conda-forge mayavi vtk
这条命令会自动安装 Mayavi、VTK 以及所有必要的依赖项。
(2) 验证安装
安装完成后,可以通过以下命令验证是否成功:
import mayavi
print("Mayavi version:", mayavi.__version__)
import vtk
print("VTK version:", vtk.vtkVersion.GetVTKVersion())
运行上述代码时,如果没有报错,则说明安装成功。
如果和我报一样的如下报找不到vtkIOExodus、vtkIONetCDF、vtkIOMINC这三个库的错误:
File “C:\Users\diqiuhua\anaconda3\envs\study\lib\site-packages\vtkmodules\all.py”, line 64, in
from .vtkIOExodus import *
ImportError: DLL load failed while importing vtkIOExodus: 找不到指定的程序。
那么,需要卸载掉VTK,再到步骤3中继续手动安装VTK,用如下命令卸载VTK:
conda remove vtk
这条命令会卸载 vtk 包以及所有与之直接依赖的包(如果这些依赖没有被其他包使用)。
删除 VTK 后,Conda 的缓存中可能仍然保留了与 VTK 相关的文件。为了清理这些残留文件,可以运行以下命令:
conda clean --all
这条命令会清理未使用的包缓存、索引缓存和临时文件,释放磁盘空间。
3. 手动安装VTK
(1) 下载VTK安装包
进到vtk的官网:https://vtk.org/download/
选择对应的.whl 后缀的 Wheel 文件,比如我是python3.8的环境,选择cp38,win10系统,选择win_amd64,下载的vtk文件名如下:
vtk-9.4.1-cp38-cp38-win_amd64.whl
Wheel 文件是一种预编译的 Python 包文件,包含了已经编译好的二进制代码(如 C 扩展)以及相关的元数据和资源文件。与传统的源码包(如 .tar.gz)相比,Wheel 文件的主要优势是安装速度更快,且不需要在目标系统上重新编译代码。
Wheel 文件的命名通常遵循以下格式:
{distribution}-{version}-{build_tag}-{python_tag}-{abi_tag}-{platform_tag}.whl
例如:
numpy-1.21.2-cp38-cp38-win_amd64.whl
- numpy:包名。
- 1.21.2:版本号。
- cp38:Python 版本(这里表示 Python 3.8)。
- win_amd64:平台架构(这里是 Windows 64 位)。
(2) conda中pip手动安装
把vtk-9.4.1-cp38-cp38-win_amd64.whl文件在conda安装目录下找个地方放一下,例如我放在
C:\Users\diqiuhua\anaconda3\DK下,从conda prompt中cd到此目录下,运行如下命令安装VTK:
(study) C:\Users\diqiuhua\anaconda3\DK>pip install vtk-9.4.1-cp38-cp38-win_amd64.whl
(3) conda安装mayavi
运行如下命令自动安装mayavi及依赖包:
conda install -c conda-forge mayavi
如上步骤都成功操作完成的话就可以继续下面的步骤,运行一个简单的示例了,验证一下成果。
mayavi的简单示例
运行如下示例,可以用mayavi创建一个3D随机立方点云:
import numpy as np
from mayavi import mlab
# 生成随机点云数据
num_points = 1000
x = np.random.random(num_points)
y = np.random.random(num_points)
z = np.random.random(num_points)
# 创建 3D 点云图
mlab.points3d(x, y, z, scale_factor=0.05, color=(0, 0, 1))
# 显示图形
mlab.show()
效果显示如图:

6045

被折叠的 条评论
为什么被折叠?



