2016-03-03 5 views
9

Ich habe ein Skalarfeld in einer 3D-Domäne (zum Glück kann es in einem strukturierten Raster dargestellt werden). Ein Achsbereich ist jedoch erheblich größer als die anderen beiden.Paraview: Ändern des Seitenverhältnisses von Achsen im Renderfenster

Aus Gründen der Klarheit, meine ‚vts‘ ist Datei in das ein Äquivalent, der folgt:

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}) 

Wenn ich die erzeugte Datei ‚structured.vts‘ laden in Paraview ich etwas Ähnliches wie die Figur bekommen unten nach dem Umschalten der Darstellung auf Volume.

enter image description here

Wie Sie die Z-Achse sehen kann, ist wesentlich größer als die anderen Achsen. Gibt es eine Möglichkeit, das Seitenverhältnis der Achsen zu ändern, um diese Visualisierung zu verbessern?

EDIT:

den Umfang der Daten zu ändern und die Änderung des Umfangs der Achse entsprechend den Trick (wie durch credondo hingewiesen). Die Frage ist noch offen für einen allgemeineren Ansatz wie das Ändern der Skalierung der gesamten Render-Ansicht. Speziell für den Umgang mit mehreren Objekten, bei denen es mühsam wäre, die Skalierung für jeden von ihnen zu ändern.

Antwort

5

Sie müssen Ihre Daten nicht ändern, Sie können die Achsen in Ihrer Ansicht skalieren.

Um dies zu tun, müssen Sie die erweiterten Eigenschaften, das kleine Zahnrad-Symbol auf der Registerkarte Eigenschaften, suchen nach "Scale" und wählen Sie jede Achse Maßstabsfaktor. Oder Sie können einfach das Eigenschaften-Suchfeld (unter der Schaltfläche "Anwenden") verwenden und "Maßstab" suchen, um diese Eigenschaft anzuzeigen.

+2

Danke. Dies speichert den Datentransformationsschritt, aber Sie müssen auch die Achsenskalierung ändern. Außerdem müssten Sie dies für jedes Objekt in der Pipeline tun. Ich suche nach etwas, das die gesamte Renderansicht skaliert. – pysolver

Verwandte Themen