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

[-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& ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员求职面试三部曲之二:提高面试的成功率

一、选择有招聘诚意的企业 一则好的招聘信息应该是准确、清晰和真实的。任何夸大宣传、提供虚假信息的企业都可以认为缺乏招聘诚意。 我们通过解读企业的招聘信息,主观上能够判断这家企业是否很有招聘诚意,我觉得主要体现为以下两个方面: 1.、…

秒杀系统设计的 5 个要点:前端三板斧+后端两条路

转载自 秒杀系统设计的 5 个要点:前端三板斧+后端两条路高并发,cache,锁机制基于缓存架构redis,Memcached的先进先出队列。稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多个节点的JVM,syn…

http响应消息的响应状态码和意义

200:表示一切正常;400:无效请求,指出客户机请求中有不正确的语法格式;404:找不到, 服务器上不存在客户机所请求的资源;(常见状态码)405:不允许此请…

python网络模块_Python的pyroute2网络模块-阿里云开发者社区

Pyroute2是纯python的netlink库,只需要python标准库不需要其他第三方的库。最常用的是监控事件,例如监控磁盘空间事件:from pyroute2 import DQuotSocketwith DQuotSocket() as ds:for messagein ds.get():print(message)或者监控IP路由from …

ASP.NET Core 开发-中间件(Middleware)

ASP.NET Core开发,开发并使用中间件(Middleware)。 中间件是被组装成一个应用程序管道来处理请求和响应的软件组件。 每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组分在管道中调用之后执行特定操作。 具体如图: 开发中间…

高性能、高可用平台架构的演变过程

转载自 高性能、高可用平台架构的演变过程开篇概述 在如今移动互联网、互联网、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。 对于移动互联网时代的平台来说&#xff…

6 使用soap客户端_网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

上一节我们了解 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,详述了具体的实现。而时代在进步,ONC RPC 逐渐因为各种问题被替代,SOAP 协议就是替代者之一。ONC RPC 存在的问题ONC RPC 将客户端要发送的参数&#xff0c…

关于HashMap容量的初始化,还有这么多学问

转载自 关于HashMap容量的初始化,还有这么多学问在《HashMap中傻傻分不清楚的那些概念》文章中,我们介绍了HashMap中和容量相关的几个概念,简单介绍了一下HashMap的扩容机制。文中我们提到,默认情况下HashMap的容量是16&#xff0…

Microservice Anti-patterns

在最近的一次Microservices Practitioner Summit中,原Netflix工程师介绍了一种越来越常见的对Microservice的误用。简单地说,大家在搭建一个基于Microservice的服务时常常依赖同一套类库,进而使得Microservice中的各个子服务无法选择最适合的…

css 图片换行_好程序员web前端学习路线分享CSS浮动-文档流篇

1、纯文本的排列。文档流就像我们的文本内容一样,所有的文字都会紧挨着,一个个排列下来,如果到了边界,就会换一行排列。当然如果敲回车或者按下空格键一般都会认为是一个词间距,因为英文中每个单词之间是有距离的&…

京东购物车的 Java 架构实现及原理

转载自 京东购物车的 Java 架构实现及原理 今天来写一下关于购物车的东西, 这里首先抛出四个问题: 1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码  问:购物车商品还在吗? 2)用户登陆了用户名密…

程序员求职面试三部曲之三:快速适应新的工作环境

新进一家公司总有各种的不适应,或兴奋, 或紧张,或不安,或迷茫各种情绪兼而有之。曾经有个家伙好不容易进了A公司,本来是要替代另一位即将离职的小伙伴的,结果,走得比那位兄弟还快,只…

问的书写规则是什么意思_化学式的定义及其书写规则

化学式的定义及其书写规则化学式是用元素符号表示纯净物组成及原子个数的式子。分子晶体的化学式叫做分子式,可以表示这种物质的分子构成。下面是百分网小编给大家整理的化学式的简介,希望能帮到大家!化学式的定义用元素符号表示纯净物组成及原子个数的式…

微软企业应用开发三大方向:跨平台、开放/开源与DevOps

软件和互联网正在改变传统企业,软件的职能逐渐从管理内部员工变成核心的商业竞争能力,在今天这种大环境下,我们应该用的新开发技术和方法。微软公司全球资深副总裁、开发平台事业部潘正磊(Julia)认为,把IT托…

Java程序员最常犯的 10 个错误

转载自 Java程序员最常犯的 10 个错误 这个列表总结了Java开发人员经常犯的10个错误。一 、把数组转成ArrayList 为了将数组转换为ArrayList,开发者经常会这样做: List list Arrays.asList(arr); 使用Arrays.asList()方法可以得到一个ArrayList&…

mysql5.1升级5.5_mysql数据库迁移,由版本5.1升级至5.5.29,需要注意哪些

caching_sha2_password认证插件提供更多的密码加密方式,并62616964757a686964616fe59b9ee7ad9431333433636131且在加密方面具有更好的表现,目前MySQL 8.0选用caching_sha2_password作为默认的认证插件,MySQL 5.7的认证插件是MySQL_native_pas…

dotnetConf 2016 线上虚拟大会

为期三天(6月7日-9日)的Channel9 免费.NET线上虚拟大会,微软产品团队及.NET社区精英一起徜徉在.NET的世界! 与大咖Scott Hunter, Miguel de Icaza (Xamarin CTO) , ScottHanselman及其他.NET大牛一起学习如何利用.NET开发跨…

mysql的on和in用法_数据库中in、on、with的用法及示例。

with用法:创建一个表:create table regr (pid integer,id integer, name char(20))alter table regr alter id set not null add primary key(id)insert into regr values(-1,1,library),(1,2,news),(2,3,world news),(2,4,politics),(2,5,bussiness)(2,…

文档数据库RavenDB-介绍与初体验

不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了。虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来。今天就给大家介…

双机热备的原理

转载自 双机热备的原理夜半惊魂 上次的文章《负载均衡的原理》中讲到,张大胖在Bill的指导下,成功地开发了一个四层的负载均衡软件, 把流量“均匀地”分发到了后面的几个服务器中, 获得了老板的1000块钱奖励。但是张大胖心中隐隐不…