Python数据可视化分为

标量可视化,矢量可视化,轮廓线可视化

标量又称无向量,只有大小没有方向,运算遵循代数运算法则比如质量,密度,温度,体积,时间

矢量又称向量,它是由大小,方向共同确定的量,运算时遵循几何运算法则,如速度,加速度,力,磁场强度,电场强度等

#实例1标量数据可视化

'''

使用等值面对标量场进行可视化(体绘制[三维空间数据场]常用手段)

等值面:标量场中标量值相等的曲面,类似地图中的等高线

tvtk.ContourFilter等值面过滤器,用来获得等值面,

它是由vtkObject

两个方法

generate_values()设定n条等值线的值,一般用于重新绘制等值线

set_value()设定一条等值线的值,一般用于覆盖某条等值线或者新增加一条等值线

from tvtk.api importtvtkfrom tvtkfunc importivtk_scene,event_loop#读入plot3D数据

plot3d=tvtk.MultiBlockPLOT3DReader(

xyz_file_name="combxyz.bin",#网格文件

q_file_name="combq.bin",#空气动力学结果文件

scalar_function_number=100,#设置标量数据数量

vector_function_number=200#设置矢量数据数量

)

plot3d.update()

grid= plot3d.output.get_block(0)#获取读入的数据集

con = tvtk.ContourFilter()#创建等值面对象

con.set_input_data(grid)#将网格与其进行绑定#范围由数组Scalars.range决定,颜色也由scalars决定

con.generate_values(10,grid.point_data.scalars.range)#创建10个等值面#默认映射表:最小值为红色,最大值为蓝色#对映射器进行构造

m=tvtk.PolyDataMapper(scalar_range=grid.point_data.scalars.range,input_connection=con.output_port)#对标量行为属性进行赋值,设置成新增加的数组的取值范围

a=tvtk.Actor(mapper=m)#由于这十个等值面会相互嵌套,为观察等值面内部结构,修改Actor对象透明度为0.5

a.property.opacity=0.5

#绘制交互窗口

win=ivtk_scene(a)

win.scene.isometric_view()

event_loop()

generate_values是创建等值面的函数,它可以同时设定n条等值线的值。

尝试更改generate_values之中的n值之后颜色改变。可以使用set_value方法设置每个等值面的值,它的第一个参数指定了第几个等值面,第二个参数指定了等值面的值。

运行效果是很漂亮的,通过设置不同的透明度会出现不同的效果。

矢量数据可视化

用箭头表示矢量数据场的数据,

箭头的大小可以表示标量信息,

箭头的方向可以表示矢量数据的方向

为了在矢量数据的网格处放置箭头符号,使用tvtk库提供的Glyph3D方法

可以产生放缩,着色和具有方向的符号

vtkObject

可以采用降维的方法降低数据密度

可以使用tvtk.MaskPoints()对数据进行降采样

vtkObject

from tvtk.api importtvtkfrom tvtkfunc importivtk_scene,event_loop#读入plot3D数据

plot3d=tvtk.MultiBlockPLOT3DReader(

xyz_file_name="combxyz.bin",#网格文件

q_file_name="combq.bin",#空气动力学结果文件

scalar_function_number=100,#设置标量数据数量

vector_function_number=200#设置矢量数据数量

)

plot3d.update()

grid= plot3d.output.get_block(0)#获取读入的数据集(StructureGrid)#对数据集中的数据进行随机选取,每50个点选择一个点

mask = tvtk.MaskPoints(random_mode = True,on_ratio = 50)#为数据进行了降采样#每50个点选择一个点,为数据进行了降采样。为了观察效果可以在shell中进行输出降采样的效果

mask.set_input_data(grid)#将grid与musk相连#创建表示箭头的PolyData数据集

glyph_source = tvtk.ArrowSource()#ArrowSource可以改成ConeSource()出来的箭头变成圆锥,scale_factor=2设置防缩系数#在Mask采样后的PolyData数据集每个点上放置一个箭头#箭头的方向、长度和颜色由于点对应的矢量和标量数据决定#在本例中箭头的方向表示速度的方向,大小和颜色表示密度#箭头越大,该点标量值越大。箭头的颜色表表示标量值的大小#红色对应的标量值越小,蓝色对应的标量值越大

glyph=tvtk.Glyph3D(input_connection=mask.output_port,scale_factor=4)#4表示符号的共同放缩系数#tvtk的可视化技术,它输入数据的每个点都被拷贝一个符号。#符号本身是通过Glyph3D的filter的第二个输入函数来接收vtkPolyData的类型数据#然后通过ArrowSource在每个点上放置一个箭头

glyph.set_source_connection(glyph_source.output_port)

m=tvtk.PolyDataMapper(scalar_range=grid.point_data.scalars.range,input_connection=glyph.output_port)

a=tvtk.Actor(mapper=m)#交互窗口绘制

win=ivtk_scene(a)

win.scene.isometric_view()

event_loop()

运行效果如下,可以说是仿真版的西北风本风了哇咔咔咔

按照注释的方法换成圆锥是什么效果呢?

哈哈哈小圆锥萌萌哒~如果我再皮一下换成立方体呢?

竟然莫名地好看。。

降采样技术是挺重要的,要不可能根本出不来

可以使用tvtk.MaskPoints()对数据进行降采样。可以通过Shell查看降采样之前的数据个数和降采样之后的数据个数

相差还是多的

空间轮廓线可视化

针对载入的流体数据计算其空间轮廓线并进行三维可视化

使用tvtk.StructuredGridOutlineFilter()来实现PoluData对象的外边框计算

该类也是继承自

vtkObject

from tvtk.api importtvtkfrom tvtk.common importconfigure_inputfrom tvtkfunc importivtk_scene,event_loop#读入plot3D数据

plot3d=tvtk.MultiBlockPLOT3DReader(

xyz_file_name="combxyz.bin",#网格文件

q_file_name="combq.bin",#空气动力学结果文件

scalar_function_number=100,#设置标量数据数量

vector_function_number=200#设置矢量数据数量

)

plot3d.update()#让plot3D计算出其输出数据

grid = plot3d.output.get_block(0)#获取读入的数据集(StructureGrid)

outline = tvtk.StructuredGridOutlineFilter()#计算表示外边框(轮廓)的PolyData对象

configure_input(outline,grid)#调用将外框计算与数据集产生关联#两个参数:一个是外框PolyData对象一个是流体数据grid

m = tvtk.PolyDataMapper(input_connection=outline.output_port)

a= tvtk.Actor(mapper=m)#创建一个Action实体Actor

a.property.color= 0.3, 0.3, 0.3

#窗口绘制

win = ivtk_scene(a)

运行结果就是当前文件的轮廓线

python 标量_Python TVTK 标量数据可视化与矢量数据可视化,空间轮廓线可视化相关推荐

  1. Python TVTK 标量数据可视化与矢量数据可视化,空间轮廓线可视化

    Python数据可视化分为 标量可视化,矢量可视化,轮廓线可视化 标量又称无向量,只有大小没有方向,运算遵循代数运算法则比如质量,密度,温度,体积,时间 矢量又称向量,它是由大小,方向共同确定的量,运 ...

  2. python 速度矢量_Python TVTK 标量数据可视化与矢量数据可视化

    Python数据可视化分为 标量可视化,矢量可视化,轮廓线可视化 标量又称无向量,只有大小没有方向,运算遵循代数运算法则比如质量,密度,温度,体积,时间 矢量又称向量,它是由大小,方向共同确定的量,运 ...

  3. python 标量_Python 数据分析- 标量类型

    提纲IPython 命令模式 内置数据类型介绍 字符串类型-说明 控制流-主要介绍序列生成函数 三元表达式 1,IPython 代码演示,进入命令 在CMD 中输入 IPython 进入命令行模式. ...

  4. python 热力图_python数据分析:数据缺失机制及利用missingno库对缺失可视化

    缺失数据是一个非常普遍的问题,也是好多人不太能弄懂的问题,包括自己也是,为了加强理解,今天给大家写一写缺失数据的缺失机制,和在python中用missingno库对缺失数据可视化的操作方法. 数据缺失 ...

  5. python曲线拟合_python如何实现数据的线性拟合

    实验室老师让给数据画一张线性拟合图.不会matlab,就琢磨着用python.参照了网上的一些文章,查看了帮助文档,成功的写了出来 这里用到了三个库 import numpy as np import ...

  6. arcgis怎么用python重新排序_python - 根据排序数据添加新的顺序ID号(ArcGIS) - 堆栈内存溢出...

    我需要一行代码,它将根据我为数据规定的顺序发出新的顺序ID. 基本上,在按照我的喜好对数据进行排序后,原始的Object_Id对我来说不再是有意义的顺序. 在我的表中,我创建了一个新字段(短整数). ...

  7. Python爬取百度疫情数据并预测未来七天及其可视化

    本文采用爬虫.AR模型以及pyrcharts技术,实现从百度上取疫情数据,并将数据用于训练模型,最后将模型的预测结果可视化展示,代码如下 from random import random impor ...

  8. python自相关图_Python绘制时间序列数据的时序图、自相关图和偏自相关图

    时序图.自相关图和偏相关图是判断时间序列数据是否平稳的重要依据. 本文涉及的扩展库numpy.pandas.statsmodels一般可以使用pip进行在线安装,如果安装失败,可以到http://ww ...

  9. python删除列_python删掉数据表几列的方法

    1.使用del函数删除指定列 python 中针对DataFrame格式的数据,删除列最简单的方法是使用del 函数,简单粗暴效果好,如import pandas as pd df = pd.Data ...

最新文章

  1. 【JavaScript】document对象属性
  2. poj 2728(最小比率生成树)
  3. JS setTimeout 与 setInterval
  4. 搭建srs服务器(rtmp)
  5. 最近一段时间遇到的费了时间的问题
  6. 点击复制,兼容ios-safari
  7. java clone 深拷贝_Java clone() 浅拷贝 深拷贝
  8. 汇编语言 王爽 【第四版】 第一章 检测点1.1
  9. Python 自动关机小程序
  10. 滴滴跨端框架 Chameleon 正式支持快应用
  11. 华大 HC32L130 调试问题总结
  12. 域名、域名服务器(DNS)、端口号
  13. 机器学习之树形模型:决策树
  14. mt管理器逆向了解安卓----【mt管理器介绍】
  15. 浏览器渲染原理以及性能优化
  16. FITC/ICG/TMR/HRP/Cy3荧光标记阿法替尼/阿西替尼/克里唑蒂尼/奥拉帕尼/Lenvatinib/多韦替尼 等药物
  17. 记录远程桌面无法互相拷贝文件可能的原因和解决方法
  18. java 图片合并成pdf_java将多张图片合并转为PDF
  19. 闭关宅家学点啥?第1弹:做个启动U盘吧
  20. 【视频目标检测论文阅读笔记】Optimizing Video Object Detection via a Scale-Time Lattice

热门文章

  1. ROS下进行串口通讯
  2. matlab目标检测yolo,YOLO目标检测快速上手
  3. android view如何更新,android – 如何使用RemoteView更新通知?
  4. JAVA中的排序函数
  5. 零基础开始学 Web 前端开发,建议
  6. (华电网)通信技术基础知识
  7. html怎么设置网页最小宽度,页面设置怎么设置 html页面怎么设置页面宽度
  8. 华为鸿蒙手表价格,「华为」鸿蒙系统来了!华为手表、智慧屏等将一同亮相!...
  9. win7系统未响应卡住_win7系统总是死机运行程序未响应的恢复步骤
  10. LeetCode 496.下个更大的数