小编pys*_*ver的帖子

Paraview:在渲染窗口中更改轴的纵横比

我在3D域中有一个标量字段(幸运的是它可以在结构化网格中表示).但是,一个轴域比另外两个轴大得多.

为清楚起见,我的'vts'文件等同于下面的文件:

from pyevtk.hl import gridToVTK
import numpy as np
import random as rnd

# Dimensions
nx, ny, nz = 6, 6, 30
lx, ly, lz = 1.0, 1.0, 10.0
dx, dy, dz = lx/nx, ly/ny, lz/nz

ncells = nx * ny * nz
npoints = (nx + 1) * (ny + 1) * (nz + 1)

# Coordinates
X = np.arange(0, lx + 0.1*dx, dx, dtype='float64')
Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64')
Z = np.arange(0, lz + …
Run Code Online (Sandbox Code Playgroud)

python vtk paraview

10
推荐指数
1
解决办法
4117
查看次数

替代Mayavi进行科学3D绘图

在没有令人满意的第一个答案和无法解释的降票后进行编辑

我需要绘制一个在3D网格中构造的标量字段,如下所示:

import numpy as np
from mayavi import mlab

dt = 10
X,Y,Z = np.mgrid[0:dt,0:dt,0:dt]

F = X**2+Y**2+Z**2

test = mlab.figure(size = (1024,768), bgcolor = (1,1,1), fgcolor = (0, 0, 0))
sf = mlab.pipeline.scalar_field(X,Y,Z,F)
vl = mlab.pipeline.volume(sf)
mlab.outline()
mlab.axes()
mlab.title('Can not change font size for this title')
mlab.xlabel('Only end ticks')
mlab.ylabel('No major ticks')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想在Python中这样做,因为我用这种语言模拟了许多数据集,并且我希望能够在对模拟参数执行敏感度时快速将其可视化。

Mayavi似乎为科学3d绘图提供了非常标准的例程。但是,在出版物中交流这些图时,没有非常基本的图自定义设置,例如轴上的主要和次要刻度线。此外,迄今为止,所支持的那些非常基本的功能甚至无法正常工作(例如,参见字体大小错误示例和此处)。

Python中是否有任何体面且易于使用的科学3D绘图库?我曾尝试学习vtk,但网站示例似乎已经过时了(例如,无法运行的体积渲染示例,我尝试编辑许多行代码以使其正常运行),而其他人似乎都同意缺少该文档。

体面的科学绘图库的意思是:

  • 允许自定义轴,标签,标题等中的字体。
  • 可以编辑轴刻度间距(至少具有主要刻度)。
  • 可以添加颜色条
  • 有文档。

提前致谢!

python numpy vtk mayavi

6
推荐指数
1
解决办法
1973
查看次数

标签 统计

python ×2

vtk ×2

mayavi ×1

numpy ×1

paraview ×1