python三维矩阵可视化_科学计算三维可视化---Mlab基础(基
于Numpy数组的绘图。。。
Mlab了解
Mlab是Mayavi提供的⾯向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建⽴可视化。
过程为:
.建⽴数据源
.使⽤Filter(可选)对数据进⾏加⼯
.添加可视化模块,我们可以通过修改可视化模块的属性,来修改可视化场景
mgrid和ogrid区别
⼀:基于Numpy数组的绘图函数
(⼀)3D绘图函数--Point3d(点图像0维)
这⾥我们可以看到Point3D参数的描述,是对vtk对象的整体描述,因为Mayavi是对VTK的整体封装,因此Mayavi建⽴的对象也就是VTK 的对象
import numpy as np
from mayavi import mlab
#建⽴数据
t = np.linspace(,*np.pi,) #linspace根据起⽌数据等间距填充数据,分为20组,所以下⾯将产⽣20个点
x = np.sin(*t)
y = np.cos(t)
z = np.cos(*t)
s = + np.sin(t)
#对数据进⾏可视化
points = mlab.points3d(x,y,z,s,colormap="Reds",scale_factor=.)
mlab.show()
mlab.points3d(x,y,z,s,colormap="Reds",scale_factor=.) #x,y,z表⽰Numpy数组,列表或者其他形式的点三维坐标,s表⽰在该点处的标量值,scale_factor放缩⽐例
这⾥:标量值越⼤,点的尺⼨越⼤,颜⾊越红
points = mlab.points3d(x,y,z,s,colormap="Greens",scale_factor=.)
Mayavi.mlab.show建⽴了简单的GUI,并开始了事件循环,stop⽤来定义GUI的事件循环是否结束
(⼆)3D绘图函数--plot3d(线图形⼀维)
import numpy as np
from mayavi import mlab  #引⼊mlab库
#建⽴数据
n_mer,n_long = ,
dphi = np.pi / 1000.0
phi = np.arange(0.0,*np.pi+0.5*dphi,dphi)
mu = phi * n_mer
x = np.cos(mu)*(+np.cos(n_long*mu/n_mer)*0.5)
y = np.sin(mu)*(+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()
(三)3D绘图函数--2D数据(⼆维)
(1)imshow⽅法
import numpy as np
from mayavi import mlab
#建⽴数据
s = np.random.random((,)) #⼆维数据
#对数据进⾏可视化
img = mlab.imshow(s,colormap="gist_earth") #gist_earth以地球表⾯的⾊彩为颜⾊的颜⾊映射关系
mlab.show()
(2)surf⽅法
s:⼆维数组第⼀列表⽰x轴位置,第⼆列表⽰y轴位置,x,y可以是⼀维或者⼆维数组,⼀般情况下,他们都由numpy的mgrid或ogrid得到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.05:0.1,-.:5.05:0.05]
s = mlab.surf(x,y,f)
mlab.show()
mgrid返回两个⼆维数组(个数是不固定的,我们放置⼏个元素,就会⽣成⼏个⼆维数组)-.:7.05:0.1---->最⼩-,最⼤7.,步长为0.1依次⽣成⼀个n*n矩阵
>>> x,y = np.mgrid[-.:7.05:0.1,-.:5.05:0.05]
>>> x
array([[-. , -. , -. , ..., -. , -. , -. ],
linspace numpy[-6.9, -6.9, -6.9, ..., -6.9, -6.9, -6.9],
[-6.8, -6.8, -6.8, ..., -6.8, -6.8, -6.8],
...,
[ 6.8, 6.8, 6.8, ..., 6.8, 6.8, 6.8],
[ 6.9, 6.9, 6.9, ..., 6.9, 6.9, 6.9],
[ . , . , . , ..., . , . , . ]])
>>> y
array([[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ],
[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ],
[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ],
...,
[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ],
[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ],
[-. , -4.95, -4.9 , ..., 4.9 , 4.95, . ]])
(3)contour_surf() 与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.05:0.1,-.:5.05:0.05]
s = ur_surf(x,y,f)
mlab.show()
(四)3D绘图函数--3D数据(三维)
(1)contour3d⽅法
import numpy as np
from mayavi import mlab
x,y,z = np.ogrid[-::64j,-::64j,-::64j]  #64j表⽰数组长度为64
scalars = x*x + y*y +z*z
obj = ur3d(scalars,contours=,transparent=True)  #contours⼋个等值⾯  transparent该对象可以透明表⽰,可以查看内部
mlab.show()
ogrid返回3个三维数组(⼏个是不固定的,我们设置了⼏个元素,就⽣成相对应个三维数组)
>>> x,y,z = np.ogrid[-::64j,-::64j,-::64j]
>>> x
array([[[-. ]],  #共64个元素
[[-4.84126984]],
[[-4.68253968]],
.......
[[ 4.68253968]],
[[ 4.84126984]],
[[ . ]]])
(2)quiver3d()⽅法
(x,y,z表⽰箭头位置,⼆维即可,不需要三维表⽰)
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()
科学计算三维可视化---Mlab基础(⿏标选取交互操作)
⼀:⿏标选取介绍 ⼆:选取红⾊⼩球分析 相关⽅法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.⼩球场景初始化建⽴import numpy as np from maya ...
科学计算三维可视化---Mlab基础(数据可视化)
推⽂:科学计算三维可视化---TVTK库可视化实例 使⽤相关函数:科学计算三维可视化---Mlab基础(管线控制函数) ⼀:mlab.pipeline中标量数据可视化 通过持续实例,来感受mlab对数 ...
科学计算三维可视化---Mlab基础(管线控制函数)
科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解) 科学计算三维可视化---Mayavi⼊门(Mayavi管线) Mlab管线控制函数的调⽤ Sources:数据源 Filte ...
科学计算三维可视化---Mlab基础(改变物体的外观颜⾊)
import numpy as np from mayavi import mlab #建⽴数据 x,y = np.mgrid[-::200j,-::200j] z = *np.sin(x*y)/(x ...
Python科学计算三维可视化(整理完结)
中国MOOC总结 课程url:here ,教师:黄天宇,嵩天 下⽂的图⽚和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...
科学计算三维可视化---Traits介绍
简介 Traits是开源扩展库,Traits本⾝与科学计算可视化没有直接关联,但他其实TVTK,Mayavi,TraitsUI基础 安装: pip3 install traits--
cp36-cp36 ...
科学计算三维可视化---Mayavi可视化实例
⼀:Dragon绘制实例(三维扫描的绘制) 三维扫描主要⽤于对物体空间外形结构以及⾊彩进⾏扫描,⽤以
获得物体表⾯的空间坐标, 他的主要意义在于能够将实物的⽴体信息转换为计算机能够直接处理的数据信号,为 ...
科学计算三维可视化---Mayavi⼊门(Mayavi库的基本元素和绘图实例)
⼀:Mayavi库的基本元素 .处理图形可视化和图形操作的mlab模块 .操作管线对象,窗⼝对象的api (⼀)mlab模块 (⼆)mayavi的api ⼆:快速绘图实例 (⼀)sh的使 ...
随机推荐
PHP实现公众平台开发 全套视频资源下载
好久没有在博客园更新东西了,今天给⼤家分享⼀份⽐较不错的视频学习资源吧. 主要是关于PHP实现公众平台开发,  不知道⼤家对于平台的开发有多少了解,那么今天就从基础开始吧,资源⽬录如下(PS ...
Android 图⽚浏览器 从原来位置放⼤⾄全屏显⽰
android 图⽚浏览器 特点: 1.从⽹络加载图⽚,只需要传图⽚地址数组即可 2.点击图⽚,从原来位置放⼤⾄全屏 3.⽀持⼿势操作 4.完全⾃定义布局 项⽬源码请到GitHub下载:https:/ ...
Java基础笔记 – Annotation注解的介绍和使⽤ ⾃定义注解
Java基础笔记 – Annotation注解的介绍和使⽤ ⾃定义注解 本⽂由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...
如何使⽤DDMS
Android DDMS如何使⽤? DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运⾏的线程以及堆信息.Logca ...
SIGPIPE信号详解
PHP之open_ssl
学习java随笔第五篇:流程控制
条件语句 if(表达式){⽅法体}else if(表达体)else{⽅法体} 简写形式:if... ⼀般形式:if... 完整形式:if...lse 分⽀语句 sw ...
PHP中使⽤CURL之备忘(⼀)
1.curl只能抓取页⾯的部分内容的原因分析: 错误提⽰:CURL transport error: transfer closed with outstanding read data remain ...
Windows下安装配置MongoDB
Windows下安装配置MongoDB ⼀,介绍 MongoDB 是由C++语⾔编写的,是⼀个基于分布式⽂件存储的开源数据库系统.在⾼负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...
redis缓存中间件基础
前序: 默认使⽤SimpleCacheConfiguration 组件ConcurrentMapCacheManager==ConcurrentMapCache将数据保存在ConcurrentMap& ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。