这篇文章给大家分享的是有关Python中如何利用PyVista进行网的色彩映射的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
PyVista简介
PyVista是什么
PyVista是一个:
- <李>
VTK对人类”,可视化工具包(VTK)的高级API
李> <李>空间数据的网格数据结构与滤波方法
李> <李>使3 d绘图更加简单,可用于大型/复杂数据的图像化
李>PyVista(以前的vtki)是可视化工具包(VTK)的一个助手模块,它采用了一种不同的方法,通过NumPy和直接数组访问与VTK进行接口。这个包提供了一个Python化的,文档化良好的接口,展示了VTK强的大的可视化后端,以方便对空间引用的数据集进行快速原型化,分析和可视化集成。
该模块可用于演示文稿和研究论文的科学绘图,以及其他依赖网格的Python模块的支持模块。
参考:https://docs.pyvista.org/index.html
引用>github
官方教程
PyVista和其他3 d可视化工具比较
参考:https://github.com/pyvista/pyvista/issues/146
引用>PyVista使用
安装
pip install pyvista 小姐;https://pypi.tuna.tsinghua.edu.cn/simpleI/O读取及可视化
网类型
PyVista支持读取大多数常见的网状文件类型,比如厚度,VTK, STL, OBJ,杨百翰大学等,一些不常见的网状文件类型,比如<代码> FEniCS/Dolfin 代码> _
XML格式(很遗憾,PyVista不支持点云PCD格式,不过可以通过pcdpy, pclpy, python-pcl等库来读金刚石文取件)
import pyvista as pv #,读取 时间=mesh pv.read (& # 39; pointCloudData/data.vtk& # 39;) #,显示 mesh.plot () #,其他类似 时间=mesh pv.read (& # 39; pointCloudData/data.ply& # 39;) 以前……>图片类型
支持读取图片类型数据JPEG, TIFF, PNG等
#,读取 时间=image pv.read (& # 39; my_image.jpg& # 39;) #,显示 image.plot (rgb=True,手机=皒y") #,其余图片类型类似 以前……>网彩色映射
项目中需要用到根据高度来对网进行彩色映射,在pyvista中大概有四种方法
自定义
代码
import pyvista as pv import matplotlib.pyplot  as plt 得到matplotlib.colors import  ListedColormap import numpy  as np def mesh_cmp_custom(网,,的名字): ,“““ ,自定义色彩映射 ,:param 网:输入网 ,:param 名字:比较数据的名字 ,返回: ,“““=,pts  mesh.points ,网[名字]=,pts (:,, 1) ,# Define 从而colors want 用使用我方表示歉意=,,blue  np.array([12,/, 256年,238年,/,256年,246年,/,256,,1])=,,black  np.array ([11,/, 256, 11,/, 256, 11,/, 256,, 1])=,,grey  np.array([189,, 256,, 189,/, 256年,189年,/,256,,1])=,,yellow  np.array ([255,, 256,, 247,/, 256, 0,/, 256,, 1])=,,red  np.array ([1, 0, 0, 1])=,c_min 网[名字].min ()=,c_max 网[名字].max ()=,,c_scale  c_max 作用;c_min=,,mapping  np.linspace (c_min, c_max,, 256)=,,newcolors  np.empty((256年,4)) ,newcolors [mapping 祝辞=,(c_scale *, 0.8, +, c_min)],=,红色 ,newcolors [mapping & lt;, (c_scale *, 0.8, +, c_min)],=,灰色的 ,newcolors [mapping & lt;, (c_scale *, 0.55, +, c_min)],=,黄色 ,newcolors [mapping & lt;, (c_scale *, 0.3, +, c_min)],=,蓝色 ,newcolors [mapping & lt;, (c_scale *, 0.1, +, c_min)],=,黑色的 ,# Make 从而colormap 得到,listed 颜色=,,my_colormap  ListedColormap (newcolors) ,mesh.plot(标量=名字,,提出=my_colormap) if __name__ ==, & # 39; __main__ # 39;:=,,mesh  pv.read (& # 39; pointCloudData/1.厚度# 39;) ,mesh_cmp_custom(网格,& # 39;y_height& # 39;)效果:
使用PyVista自带的cmp
函数<代码>网。null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null
Python中如何利用PyVista进行网的色彩映射