pys*_*ver 10 python vtk 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 + 0.1*dz, dz, dtype='float64')
x = np.zeros((nx + 1, ny + 1, nz + 1))
y = np.zeros((nx + 1, ny + 1, nz + 1))
z = np.zeros((nx + 1, ny + 1, nz + 1))
# We add some random fluctuation to make the grid
# more interesting
for k in range(nz + 1):
for j in range(ny + 1):
for i in range(nx + 1):
x[i,j,k] = X[i] + (0.5 - rnd.random()*0) * 0.1 * dx * 0
y[i,j,k] = Y[j] + (0.5 - rnd.random()*0) * 0.1 * dy * 0
z[i,j,k] = Z[k] + (0.5 - rnd.random()*0) * 0.1 * dz * 0
# Variables
pressure = np.random.randn(ncells).reshape( (nx, ny, nz))
temp = x**2 + y**2 + z**2
gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp})
Run Code Online (Sandbox Code Playgroud)
当我将生成的'structured.vts'文件加载到Paraview中时,在将表示切换为卷后,我得到类似于下图的内容.
如您所见,Z轴比其他轴大得多.有没有办法改变轴的纵横比/比例以改善这种可视化?
编辑:
改变数据的规模(如credondo所指出的)并相应地修改轴的比例就可以了.对于更通用的方法,例如更改整个渲染视图的比例,问题仍然存在.特别是处理多个对象,在这些对象中修改每个对象的比例是很繁琐的.
您无需修改数据,可以在视图中缩放轴.
要执行此操作,您必须切换高级属性,属性选项卡上的小齿轮图标,查找"比例"并选择每个轴比例因子.或者您可以只使用属性搜索字段(在"应用"按钮下方)并搜索"缩放"以显示此属性.