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([[-. , -. , -. , ..., -. , -. , -. ],

[-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 = mlab.contour_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 = mlab.contour3d(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 二:快速绘图实例 (一)mlab.mesh的使 ...

随机推荐

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信号详解

转自:http://blog.csdn.net/lmh12506/article/details/8457772 前一段面试的时候被问到项目中有没有处理SIGPIPE信号,怎么处理的?当时没有答出来, ...

PHP之open_ssl

http://www.wapm.cn/phpdoc/zh/openssl.installation.html http://liuxufei.com/weblog/jishu/376.html dem ...

学习java随笔第五篇:流程控制

条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 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& ...

python三维矩阵可视化_科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)...相关推荐

  1. 科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)

    Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: 1.建立数据源2.使用Filter ...

  2. python导入mat文件_从.mat文件导入复杂数据作为numpy数组

    我有一个关于元组的问题.我使用了一个程序,它以.mat格式转储大量输出的三维数组.它们在MATLAB中工作得很好.它们是较新的.mat格式(基于HDF5). 假设我在MATLAB中生成了一个10x10 ...

  3. python中符号计算三维可视化_Python科学计算三维可视化_答案mooc

    马格德堡半球实验是关于真空是否存在的实验.() 马来西亚历史上的第一个封建王国称为: 马林巴传入拉丁美洲大约是在什么时候? 马林科夫准备把苏联发展重点放在农业上. 马步是模仿蒙古人()的动作 马林诺夫 ...

  4. python中符号计算三维可视化_Python科学计算三维可视化章节答案

    科学可视细胞衰老和死亡不止发生在生物个体衰老时. 参考答案如下 计算节答糖尿病患者需要紧急救治的情况化章糖尿病患者每日食物的组成中,碳水化合物应占多少? 科学可视糖尿病患者饮食中应注意补充下列微量元素 ...

  5. python123第四周作业_科学计算和可视化

    一.numpy和matplotlib库的学习笔记 (1)numpy库 1,从数值范围创建数组 1 numpy.arange(start, stop, step, dtype)#参数分别为起始值,终止值 ...

  6. python求解优化问题_科学计算:最优化问题-2(Python)

    三.最小二乘法 最小二乘法(least square method)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实 ...

  7. python 科学计算三维可视化笔记(第三周 高级进阶)

    python 科学计算三维可视化笔记 第三周 高级进阶 python 科学计算三维可视化笔记 第三周 高级进阶 一.Mayavi 入门 1. Mayavi 库的基本元素 2. 快速绘制实例 3. Ma ...

  8. 科学计算三维可视化---Mlab基础(鼠标选取交互操作)

    一:鼠标选取介绍 二:选取红色小球分析 相关方法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.小球场景初始化建立 import numpy as np from maya ...

  9. AI算法工程师 | 03人工智能基础-Python科学计算和可视化(三)Pandas

    文章目录 Python 之 数据处理分析模块 Pandas 一.Pandas 开发环境搭建 二.Pandas 数据类型 1. Series 对象创建 2. DataFrame 对象创建 3. 获取 S ...

最新文章

  1. linux下如何解压缩zip,tar,tar.gz,tar.bz2文件
  2. 《数学之美》第25章 条件随机场、文法分析及其他
  3. SQL server报错42000 - [SQL Server]从数据类型 varchar 转换为 int 时出错。
  4. 在Windows XP系统登录Active Directory域
  5. .Net资讯 | 一大波开发者福利来了, 一份微软官方Github上发布的开源项目清单等你签收...
  6. 2017双11交易系统TMF2.0技术揭秘,实现全链路管理
  7. c#字符相似度对比通用类
  8. 航天电子业绩下降近两成
  9. 【哈佛商评】好编辑成就内容营销
  10. widthStep、width
  11. adb命令刷机vivox20_vivo手机变砖 刷机手机端口连上显示adb
  12. 小米盒子3显示无网络连接服务器,小米盒子不显示无线网络连不上 - 卡饭网
  13. 汽车4G车载TBOX智能终端
  14. Android Studio 导入图片标红错误
  15. 大一上学期Python学习心得体会
  16. 思科模拟器 --- 路由器RIP动态路由配置
  17. 51nod 2075 图书管理员
  18. GIS学习教程资料整理
  19. 多页pdf合并成一个的操作方法
  20. 封装系列 | QFN

热门文章

  1. ES11 新增方法:Dynamic Import()、BigInt、globalThis、可选链(?.)、空值合并运算符
  2. 为什么有的人知识渊博,但总成不了事?告诉你3点原因
  3. Unity Text字间距和行间距调整
  4. 例题4-1 UVA1339 古老的密码 Ancient Cipher
  5. centos基本操作
  6. centos7上使用移动硬盘
  7. 下载MySQL的JDBC驱动jar包详细步骤
  8. js获取剪切板内容(企业微信内嵌网页)
  9. GitHub使用教程(项目下载)
  10. golang使用excelize导出Excel表格数据