PyVista 是可视化工具包 (VTK) 的帮助程序库,它采用不同的方法通过NumPy和直接数组访问与VTK连接。该软件包提供了一个 Pythonic、文档齐全的接口,公开了VTK强大的可视化后端,以促进空间参考数据集的快速原型设计、分析和可视化集成。
这个工具包对于科学研究绘图、可视化以及3D网格渲染、仿真结果后处理等提供非常不错的非常友好的支持,大家可以根据主页的文档快速上手。
另外,PyVista不仅仅是从Python控制台或IDE运行它。例如,您可以将PyVista打包到docker映像中,并使用EGL构建 VTK,以便在远程服务器上启用丰富的无头绘图。您还可以使用pyinstaller打包PyVista,以便在独立应用程序中使用。
PyVista是NumFOCUS的所属项目。下面是一些研究领域的应用案例。
下载圣海伦斯山的表面高程图并绘制
from pyvista import examples
mesh = examples.download_st_helens()
warped = mesh.warp_by_scalar('Elevation')
surf = warped.extract_surface().triangulate()
surf = surf.decimate_pro(0.75)# reduce the density of the mesh by 75%
surf.plot(cmap='gist_earth')
绘制试件缺口处的应力值
from pyvista import examples
mesh = examples.download_notch_stress()
mesh.plot(scalars='Nodal Stress', component=0, cmap='turbo', cpos='xy')
从NumPy点数组生成样条
import numpy as np
import pyvista
# Make the xyz points
theta = np.linspace(-10* np.pi,10* np.pi,100)
z = np.linspace(-2,2,100)
r = z**2+1
x = r * np.sin(theta)
y = r * np.cos(theta)
points = np.column_stack((x, y, z))
spline = pyvista.Spline(points,500).tube(radius=0.1)
spline.plot(scalars='arc_length', show_scalar_bar=False)
其他一些案例场景,非常丰富,大家自行了解。
来源:CAE仿真空间