我在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) 在没有令人满意的第一个答案和无法解释的降票后进行编辑:
我需要绘制一个在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,但网站示例似乎已经过时了(例如,无法运行的体积渲染示例,我尝试编辑许多行代码以使其正常运行),而其他人似乎都同意缺少该文档。
体面的科学绘图库的意思是:
提前致谢!