Mayavi 是一个功能强大的开源科学数据可视化库,它允许用户通过 Python 创建交互式 2D 和 3D 图形。它适用于各种科学和工程领域,包括物理、生物医学、地质学等。本文将为您提供 Mayavi 的入门与进阶教程,帮助您从基础到高级掌握这一工具。

入门指南

1. 安装 Mayavi

首先,您需要在您的计算机上安装 Mayavi。您可以通过以下命令来安装:

pip install mayavi

安装完成后,您可以使用以下命令来验证安装:

import mayavi
mayavi.initialize()

2. 创建基本图形

以下是一个使用 Mayavi 创建基本 3D 图形的简单示例:

from mayavi import mlab
import numpy as np

# 生成数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
z = x * np.exp(-x**2 - y**2)

# 创建网格数据
s = mlab.meshgrid(x, y)
v = mlab.pipeline.scalar_field(z)

# 绘制表面
surf = mlab.pipeline.surface(v)

# 显示图形
mlab.show()

3. 图形属性调整

Mayavi 允许您调整图形的许多属性,例如颜色、透明度、线宽等。以下是一个调整表面颜色和线宽的示例:

# 设置颜色
surf.module_manager.children[0].prop.module_manager.children[0].color = (0.5, 0.5, 1.0)

# 设置线宽
surf.module_manager.children[0].prop.module_manager.children[0].linewidth = 2.0

# 显示图形
mlab.show()

进阶教程

1. 交互式图形

Mayavi 支持创建交互式图形,允许用户通过鼠标和键盘进行交互。以下是一个创建交互式旋转图形的示例:

# 创建交互式旋转图形
mlab.figure(size=(800, 600), bgcolor=(1, 1, 1))
surf = mlab.pipeline.surface(v)
mlab.outline()

# 添加交互
mlab.interactive()

2. 数据源

Mayavi 支持多种数据源,包括 NumPy 数组、VTK 数据集、PDB 文件等。以下是一个从 PDB 文件读取数据并创建图形的示例:

import mdtraj

# 从 PDB 文件读取数据
 traj = mdtraj.load('1CGW.pdb')

# 创建轨迹图形
traj.show()

3. 集成其他库

Mayavi 可以与其他 Python 库集成,例如 NumPy、SciPy、Pandas 等。以下是一个将 Mayavi 与 Pandas 集成的示例:

import pandas as pd
import mayavi.mlab as mlab

# 创建数据
data = {'x': np.random.rand(10), 'y': np.random.rand(10), 'z': np.random.rand(10)}
df = pd.DataFrame(data)

# 创建图形
surf = mlab.points3d(df['x'], df['y'], df['z'], mode='point', scale_mode='none', scale_factor=1)

# 显示图形
mlab.show()

通过以上教程,您应该能够掌握 Mayavi 的基本使用方法和一些高级技巧。Mayavi 是一个功能强大的工具,可以用于创建各种科学数据可视化,因此深入学习并掌握它将有助于您在科学研究和工程领域取得更好的成果。