文章目录
1. mayavi.mlab.show()
函数形式
mayavi.mlab.show(func = None, stop = False)
实例代码
官方文档
Here is a simple example demonstrating the use of show:
from mayavi import mlab
mlab.test_contour3d()
mlab.show()
You can stop interaction via a simple pop up UI like so:
mlab.test_contour3d()
mlab.show(stop=True)
The decorator can be used like so:
@mlab.show
def do():
mlab.test_contour3d()
do()
The decorator can also be passed the stop argument:
@mlab.show(stop=True)
def do():
mlab.test_contour3d()
do()
2. Points3d()
函数形式
points3d(x, y, z…)
points3d(x, y, z, s, …)
points3d(x, y, z, f, …)
参数意义
参数 | 说明 |
---|---|
x,y,z | numpy数组、列表或者其他形式的点三维坐标 |
s | 在该坐标点处的标量值 |
f | 通过函数f(x,y,z) 返回的标量值 |
color | VTK对象的颜色,定义为(0,1) 的三元组 |
colormap | colormap 的类型,例如Reds 、Blues 、Copper 等 |
extent | x 、y 、z 数组范围[xmin, xmax, ymin, ymax, zmin, zmax] |
figure | 画图 |
line_width | 线的宽度,该值为float ,默认为0.2 |
mask_points | 减少/降低大规模点数据集的数量 |
mode | 符号的模式,例如2darrow 、2dcircle 、arrow 、cone 等 |
name | VTK对象名字 |
opcity | Vtk对象的整体透明度,该值为float 型,默认为1.0 |
reset_zoom | 对新加入场景数据的放缩进行重置。默认为True |
resolution | 符号的分辨率,如球体的细分数,该值为整型,默认为8 |
scale_factor | 符号放缩的比例 |
scale_mode | 符号的放缩模式,如vector 、scalar 、none |
transparent | 根据标量值确定actor的透明度 |
vmax | 对colormap 放缩的最大值 |
vmin | 对colormap 放缩的最小值 |
实例代码
import numpy as np
from mayavi import mlab
# 建立数据
t = np.linspace(0, 4 * np.pi, 20) # 0-4pi之间均匀的20个数
x = np.sin(2 * t)
y = np.cos(t)
z = np.cos(2 * t)
s = 2 + np.sin(t)
# 对数据进行可视化
points = mlab.points3d(x, y, z, s, colormap="Greens", scale_factor=.25)
mlab.show()
运行结果
3. plot3d ()
函数形式
plot3d(x, y, z…)
plot3d(x, y, z, s, …)
参数意义
color
、colormap
、extent
、figure
、line_width
、name
、opacity
、representation
、reset_zoom
、transparent
、tube_radius
、tube_sides
、vmax
、vmin
参考上面表格。
参数 | 说明 |
---|---|
x,y,z | numpy数组,或列表。给出了线上连续的点的位置 |
s | 在该坐标点处的标量值 |
tube_radius | 线管的半径,用于描述线的粗细 |
tube_sides | 表示线的分段数,该值为整数,默认为6 |
实例代码
import numpy as np
from mayavi import mlab
# 建立数据
n_mer, n_long = 6, 11
dphi = np.pi / 1000.0
phi = np.arange(0.0, 2 * np.pi + 0.5 * dphi, dphi)
mu = phi * n_mer
x = np.cos(mu) * (1 + np.cos(n_long * mu / n_mer) * 0.5)
y = np.sin(mu) * (1 + np.cos(n_long * mu / n_mer) * 0.5)
z = np.sin(n_long * mu / n_mer) * 0.5
# 对数据进行可视化
l = mlab.plot3d(x, y, z, np.sin(mu), tube_radius=0.025, colormap='Spectral')
mlab.show()
运行结果
4. imshow ()
函数形式
imshow(s, …)
参数意义
color
、colormap
、extent
、figure
、interpolate
、line_width
、name
、opacity
、reset_zoom
、transparent
、 vmax
、vmin
参考上面表格。
参数 | 说明 |
---|---|
s | 一个二维数组,s的值使用colormap被映射为颜色 |
interpolate | 图像中的像素是否被插值,该值为布尔型,默认为True |
实例代码
import numpy
from mayavi import mlab
# 建立数据
s = numpy.random.random((10, 10))
# 对数据进行可视化
img = mlab.imshow(s, colormap='gist_earth')
mlab.show()
运行结果
5. surf()
函数形式
surf(s, …)
surf(x, y, s,…)
surf(x, y, f,…)
s是一个高程矩阵,用二维数组表示。
实例代码
import numpy as np
from mayavi import mlab
def f(x, y):
return np.sin(x - y) + np.cos(x + y)
x, y = np.mgrid[-7.:7.05:0.1, -5.:5.05:0.05]
s = mlab.surf(x, y, f)
mlab.show()
运行结果
contour_surf()
与Surf()类似,但求解的是等值线。
实例代码
import numpy as np
from mayavi import mlab
def f(x, y):
return np.sin(x - y) + np.cos(x + y)
x, y = np.mgrid[-7.:7.05:0.1, -5.:5.05:0.05]
con_s = mlab.contour_surf(x, y, f)
mlab.show()
运行结果
6. contour3d()
函数形式
contour3d(scalars, …)
contour3d(x, y, z, scalars,…)
参数意义
参数 | 说明 |
---|---|
x,y,z | 三维空间坐标 |
scalars | 网格上的数据,用三维numpy数组表示 |
contours | 定义等值面的数量 |
实例代码
import numpy
from mayavi import mlab
x, y, z = numpy.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]
scalars = x * x + y * y + z * z
obj = mlab.contour3d(scalars, contours=8, transparent=True)
mlab.show()
运行结果
7. quiver3d()
函数形式
quiver3d(u,v,w …)
quiver3d(x,y,z,u,v,w …)
quiver3d(x,y,z,f,…)
参数意义
参数 | 说明 |
---|---|
u,v,w | 用numpy数组表示的向量 |
x,y,z | 表示箭头的位置 |
f | 返回在给定位置(x,y,z)的(u,v,w)矢量 |
实例代码
import numpy as np
from mayavi import mlab
x, y, z = np.mgrid[-2:3, -2:3, -2:3]
r = np.sqrt(x ** 2 + y ** 2 + z ** 4)
u = y * np.sin(r) / (r + 0.001)
v = -x * np.sin(r) / (r + 0.001)
w = np.zeros_like(z)
obj = mlab.quiver3d(x, y, z, u, v, w, line_width=3, scale_factor=1)
mlab.show()
运行结果
8. 改变物体颜色
colormap定义的颜色,也叫LUT。 LUT:Look Up Table。
##常见的colormaps
=accent、flag、autumn、gist_earth、black-white、gist_gray、blue-red、gist_heat、blues、gist_ncar、bone、gist_rainbow、brbg、gist_stern、bugn、gist_yarg、bupu、gnbu、cool、gray、copper、greens、dark2、greys、hot、pubu、hsv、pubugn、jet、puor、oranges、purd、orrd、purples、paired、rdbu、pastel1、rdgy、pastel2、rdpu、pink、rdylbu、piyg、rdylgn、prgn、reds、prism、set1、set2、set3、spectral、spring、summer、winter、ylgnbu、ylgn、ylorbr、ylorrd
实例代码
import numpy as np
from mayavi import mlab
#建立数据
x, y = np.mgrid[-10:10:200j, -10:10:200j]
z = 100 * np.sin(x * y) / (x * y)
# 对数据进行可视化
mlab.figure(bgcolor=(1, 1, 1))
surf = mlab.surf(z, colormap='cool')
# 更新视图并显示出来
mlab.show()
import numpy as np
from mayavi import mlab
# 建立数据
x, y = np.mgrid[-10:10:200j, -10:10:200j]
z = 100 * np.sin(x * y) / (x * y)
# 对数据进行可视化
mlab.figure(bgcolor=(1, 1, 1))
surf = mlab.surf(z, colormap='cool')
# 访问surf对象的LUT
# LUT是一个255*4的数组,列向量表示RGBA,
# 每个值的范围从0-255
lut = surf.module_manager.scalar_lut_manager.lut.table.to_array()
# 增加透明度,修改alpha通道
lut[:, -1] = np.linspace(0, 255, 256)
surf.module_manager.scalar_lut_manager.lut.table = lut
# 更新视图并显示出来
mlab.show()
运行结果