Python中如何利用PyVista进行网的色彩映射

  介绍

这篇文章给大家分享的是有关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可视化工具比较

 Python中如何利用PyVista进行网的色彩映射

参考:https://github.com/pyvista/pyvista/issues/146

PyVista使用

安装

pip  install  pyvista 小姐;https://pypi.tuna.tsinghua.edu.cn/simple

I/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;)

效果:

 Python中如何利用PyVista进行网的色彩映射

使用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进行网的色彩映射