Wissenschaftlich-technische Berechnung mit Python] Zeichnen und Visualisieren von 3D-Isoplanes und deren Querschnittsansichten mit Mayavi

Einführung

** Wir untersuchen häufig die Äquivalenzebene von Skalarfunktionen in der Forschung, die wissenschaftliche und technische Berechnungen in vollem Umfang nutzt. ** ** ** Dies mit Standardplots zu tun, bei denen Matplotlib allein verwendet wird, ist möglicherweise nicht einfach (oder derzeit möglicherweise nicht möglich).

** Auf der anderen Seite können Sie mit Mayavi schnell eine Äquivalenzebene zeichnen. mayavi ist (anscheinend) als hervorragende dreidimensionale Visualisierungsbibliothek bekannt, die für Präsentationen, Konferenzpräsentationen und Vorträge verwendet werden kann [1]. ** ** **

Hier als Beispiel für das Zeichnen einer Äquivalenzebene mit Mayavi ist die Äquivalenzebene der Drei-Variablen-Funktion $ f (x, y, z) = \ frac {\ sin (xyz)} {(xyz)} \ tag 1 $ Versuche [1,2] zu zeichnen.

Viele Informationen werden auf der offiziellen Website von Mayavi veröffentlicht, und dieser Artikel folgt ihr.


Inhalt

(1) Zeichnen Sie vier gleiche Ebenen, indem Sie die möglichen Werte von f in vier gleiche Teile teilen.

(2) Zeichnen Sie einen Querschnitt der Äquivalenzebene.

Code (1) Zeichnen Sie eine Gleichheitsebene


"""
Zeichnen Sie eine 3D-Isoplane mit Mayavi: iso-surface
30 Aug. 2017
"""
import numpy as np
from mayavi import mlab
mlab.init_notebook()  #Notebook-Initialisierung. Stellen Sie sicher, dass Sie es eingeben.

x, y, z = np.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]
scalar = np.sin(x*y*z)/(x*y*z)  #Funktionseinstellungen

#Erzeugung der Zeichenfläche
mlab.figure(1, bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(600, 400)) #Stellen Sie Hintergrundfarbe, Größe usw. ein.
mlab.clf()

#Zeichnen Sie eine 3D-Isoplane. Stellen Sie die Farbkarte als Jet ein. Konturen sind die Anzahl der Unterteilungen und die Linie_Breite ist Liniendicke, Deckkraft ist Deckkraft(Der Standardwert ist 1.0)
obj=mlab.contour3d(scalar,colormap='jet',\
                   contours=4,line_width=1.3,opacity=0.8) 

mlab.show()

obj   #Führen Sie zum Schluss das Zeichenobjekt aus! Wenn Sie dies nicht tun, passiert nichts.

Ergebnis

スクリーンショット 2017-08-30 18.26.02.png

Code (2) Zeichnen Sie einen Querschnitt der Äquivalenzebene

"""
Zeichnen Sie mit Mayavi einen Querschnitt einer 3D-Isoplane: 
"""
import numpy as np
from mayavi import mlab
mlab.init_notebook()

x, y, z = np.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]
scalar = np.sin(x*y*z)/(x*y*z)

#Querschnittseinstellung:Erstellen Sie Objekte mit Querschnitten parallel zur x- und y-Achse mit den Namen ss1 und ss2
ss1=mlab.pipeline.image_plane_widget(mlab.pipeline.scalar_field(scalar),plane_orientation='x_axes',slice_index=10,)
ss2=mlab.pipeline.image_plane_widget(mlab.pipeline.scalar_field(scalar),plane_orientation='y_axes',slice_index=10,)

mlab.show()

ss1
ss2

Ergebnis (2): Querschnittsansicht der Äquivalenzebene

スクリーンショット 2017-08-30 18.33.39.png


Nachtrag:

(1) Installation von Mayavi mit Conda (siehe [3])

Meine Maschinenumgebung: macOS Sierra 10.12.6 Starten Sie das Terminal und

  1. conda install -c menpo mayavi=4.5.0
  2. jupyter nbextension install --py mayavi --user
  3. conda install pyQT

Und sagte.

(2) Bei Verwendung von macOS + Jupyter

Beim Starten von Jupyter-notebook 5.0 oder höher muss ** iopub_data_rate_limit groß eingestellt werden, da sonst der zum Zeichnen mit Mayavi erforderliche Speicher nicht ausreicht **. Daher scheint es beim Starten von jupyter notwendig zu sein, *** jupyter-notebook --NotebookApp.iopub_data_rate_limit = 10000000000 *** usw. [4] einzustellen.


Verweise

[1] Miyavi-Tutorial: http://docs.enthought.com/mayavi/mayavi/auto/mlab_helper_functions.html [2] Über contour3d (Englisch) http://mdns.esy.es/2017/06/17/contour3d/

[3] Qiita-Artikel von 2dod, Einstellungen bei Verwendung von Mayavi mit Jupyter-Notebook [4] Zu iopub_data_rate_limit (Englisch): https://github.com/jupyter/notebook/issues/2287

Recommended Posts

Wissenschaftlich-technische Berechnung mit Python] Zeichnen und Visualisieren von 3D-Isoplanes und deren Querschnittsansichten mit Mayavi
[Wissenschaftlich-technische Berechnung von Python] Zeichnung von 3D-gekrümmter Oberfläche, Oberfläche, Drahtrahmen, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, Visualisieren, Matplotlib von 2D-Konturlinien (Farbkonturen) usw.
[Wissenschaftlich-technische Berechnung mit Python] Plot, Visualisierung, Matplotlib von 2D-Daten, die aus einer Datei gelesen wurden
[Wissenschaftliche und technische Berechnung von Python] Zeichnung fraktaler Figuren [Shelpinsky-Dreieck, Bernsley-Farn, fraktaler Baum]
[Wissenschaftlich-technische Berechnung mit Python] Histogramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung von Python] Zeichnungsanimation der parabolischen Bewegung mit Locus, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Logistisches Diagramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Polarkoordinatendiagramm, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung von Python] Grundlegende Operation des Arrays, numpy
[Wissenschaftlich-technische Berechnung durch Python] Liste der Verwendung von (speziellen) Funktionen, die in der Physik unter Verwendung von scipy verwendet werden
[Wissenschaftlich-technische Berechnung von Python] Wellen "Stöhnen" und Gruppengeschwindigkeit, Wellenüberlagerung, Visualisierung, Physik der High School
[Wissenschaftlich-technische Berechnung mit Python] Beispiel für die Visualisierung von Vektorfeld, elektrostatischem Magnetfeld, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] 2D-Random-Walk (Drunken-Walk-Problem), numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Monte-Carlo-Simulation nach der Metropolenmethode der Thermodynamik des 2D-Anstiegsspinsystems
[Wissenschaftlich-technische Berechnung mit Python] Summenberechnung, numerische Berechnung
[Wissenschaftlich-technische Berechnung von Python] Anpassung durch nichtlineare Funktion, Zustandsgleichung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Berechnung des Matrixprodukts mit @ operator, python3.5 oder höher, numpy
[Wissenschaftlich-technische Berechnung nach Python] Ableitung analytischer Lösungen für quadratische und kubische Gleichungen, mathematische Formeln, Sympy
[Wissenschaftlich-technische Berechnung mit Python] Lagrange-Interpolation, numerische Berechnung
Berechnung der technischen Indikatoren durch TA-Lib und Pandas
[Wissenschaftlich-technische Berechnung mit Python] Lösen (verallgemeinerter) Eigenwertprobleme mit numpy / scipy mithilfe von Bibliotheken
[Wissenschaftlich-technische Berechnung von Python] Numerische Berechnung zur Ermittlung des Ableitungswerts (Differential)
[Wissenschaftlich-technische Berechnung mit Python] Analytische Lösungssympathie zur Lösung von Gleichungen
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, visualisieren, matplotlib 2D-Daten mit Fehlerleiste
Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)
Analyse von Finanzdaten durch Pandas und deren Visualisierung (1)
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung von 1-dimensionalen und 2-dimensionalen Wellengleichungen nach der FTCS-Methode (explizite Methode), doppelt gekrümmte partielle Differentialgleichungen
[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung der gewöhnlichen Differentialgleichung zweiter Ordnung, Anfangswertproblem, numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Liste der Matrizen, die in Hinpan in der numerischen linearen Algebra vorkommen
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Problems des eindimensionalen harmonischen Oszillators nach der Speed-Berle-Methode
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Eigenwertproblems der Matrix durch Potenzmultiplikation, numerische lineare Algebra
[Wissenschaftlich-technische Berechnung mit Python] Spline-Interpolation dritter Ordnung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Monte-Carlo-Integration, numerische Berechnung, Numpy
[Wissenschaftlich-technische Berechnung nach Python] Numerische Integration, Trapezgesetz / Simpson-Gesetz, numerische Berechnung, scipy
[Wissenschaftlich-technische Berechnung von Python] 1-dimensionale 3D-diskrete Hochgeschwindigkeits-Fourier-Transformation, scipy
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung der eindimensionalen instationären Wärmeleitungsgleichung nach der Crank-Nicholson-Methode (implizite Methode) und der FTCS-Methode (positive Lösungsmethode), parabolische partielle Differentialgleichung
Clustering und Visualisierung mit Python und CytoScape
[Wissenschaftlich-technische Berechnung mit Python] Lösen gewöhnlicher Differentialgleichungen, mathematischer Formeln, Sympy
[Steuerungstechnik] Berechnung von Übertragungsfunktionen und Zustandsraummodellen durch Python
[Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung
Beispiel einer dreidimensionalen Skelettanalyse von Python
Regressionsmodell mit Scikit-Learn und dessen Visualisierung
[Wissenschaftlich-technische Berechnung mit Python] Lösen der gewöhnlichen Differentialgleichung zweiter Ordnung nach der Numerov-Methode, numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Lösen der eindimensionalen Newton-Gleichung nach der Runge-Kutta-Methode 4. Ordnung
[Wissenschaftlich-technische Berechnung durch Python] Erzeugung ungleichmäßiger Zufallszahlen mit gegebener Wahrscheinlichkeitsdichtefunktion, Monte-Carlo-Simulation