** 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.
(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.
"""
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.
"""
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
Meine Maschinenumgebung: macOS Sierra 10.12.6 Starten Sie das Terminal und
Und sagte.
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.
[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