9. mlab基础

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,znumpy数组、列表或者其他形式的点三维坐标
s在该坐标点处的标量值
f通过函数f(x,y,z)返回的标量值
colorVTK对象的颜色,定义为(0,1)的三元组
colormapcolormap的类型,例如RedsBluesCopper
extentxyz数组范围[xmin, xmax, ymin, ymax, zmin, zmax]
figure画图
line_width线的宽度,该值为float,默认为0.2
mask_points减少/降低大规模点数据集的数量
mode符号的模式,例如2darrow2dcirclearrowcone
nameVTK对象名字
opcityVtk对象的整体透明度,该值为float型,默认为1.0
reset_zoom对新加入场景数据的放缩进行重置。默认为True
resolution符号的分辨率,如球体的细分数,该值为整型,默认为8
scale_factor符号放缩的比例
scale_mode符号的放缩模式,如vectorscalarnone
transparent根据标量值确定actor的透明度
vmaxcolormap放缩的最大值
vmincolormap放缩的最小值

实例代码

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, …)

参数意义

colorcolormapextentfigureline_widthnameopacityrepresentationreset_zoomtransparenttube_radiustube_sidesvmaxvmin参考上面表格。

参数说明
x,y,znumpy数组,或列表。给出了线上连续的点的位置
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, …)

参数意义

colorcolormapextentfigureinterpolateline_widthnameopacityreset_zoomtransparentvmaxvmin参考上面表格。

参数说明
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()

运行结果

这里写图片描述
这里写图片描述

  • 1
    点赞
  • 9
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我成为一只小羊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值