Dieser Artikel ist eine Fortsetzung von Konturlinien in Lehrbüchern zeichnen (Fortan + Gnuplot).
Der Autor studiert die in der Ingenieurabteilung der Universität erlernte Fluiddynamik, aber zu Beginn der Fluiddynamik (vollständige Fluidtheorie) erscheinen physikalische Größen wie das Geschwindigkeitspotential $ \ phi $ und die Strömungsfunktion $ \ psi $ und diese Größen Es gibt einige typische Beispiele für die Verwendung von (Doppelseite. 87% BA% E3% 81% 97) usw.). Die zweidimensionalen Konturlinien dieser Größen werden im Lehrbuch als Zahlen dargestellt, aber ich habe das Gefühl, dass sich mein Verständnis vertiefen wird, wenn ich sie selbst zeichnen kann. Es ist jedoch oft schwierig, Konturlinien einer bestimmten physikalischen Größe auf einer zweidimensionalen Oberfläche mit einem Graph-Software-Dienst zu zeichnen, der die Funktion $ y = f (x) $ leicht zeichnen kann. Im vorherigen Artikel habe ich versucht, mit Fortran + gnuplot zu zeichnen, aber ich möchte es mit einer beliebten Programmiersprache versuchen, daher werde ich dieses Mal Konturlinien mit Python zeichnen.
Da Python plattformübergreifend ist, installieren Sie es entsprechend der jeweiligen Umgebung. Es gibt verschiedene Möglichkeiten, Python zu installieren. Überprüfen Sie es daher selbst und wählen Sie die aus, die gut aussieht. Für diejenigen, die Schwierigkeiten bei der Installation haben oder verschiedene Dinge nicht auf ihrem PC installieren möchten, empfehlen wir die Verwendung von Google Colaboratory.
Neben Python selbst werden numpy und matplotlib als Module benötigt. Wenn Sie Python usw. verwenden möchten, das ursprünglich im Betriebssystem enthalten war, installieren Sie es zusätzlich.
Der vorherige Artikel zielt auf das gleiche Ausblasen / Absaugen ab. Unter der Annahme, dass der Abstand vom Ursprung $ r $ beträgt, kann das Geschwindigkeitspotential $ \ phi $ in drei Dimensionen wie folgt ausgedrückt werden.
Das matplotlib-Modul von Python kann verschiedene Arten von Zeichnungen zeichnen, sodass die Arbeit nur mit Python gelöst werden kann.
Erstellen Sie ein Python-Skript im Flow. Da wir keine fortgeschrittenen Dinge tun, berücksichtigen wir keine Objektorientierung.
Ein Beispielskript wird unten gezeigt.
contour.py
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
xmin = -10.0
xmax = 10.0
ymin = -10.0
ymax = 10.0
delta = 0.1
x = np.arange(xmin,xmax,delta)
y = np.arange(xmin,xmax,delta)
m = 1.0
X, Y = np.meshgrid(x,y)
r = np.sqrt(X**2 + Y**2)
Z = -m/r
fig, ax = plt.subplots(figsize=(6,6))
levels = np.arange(-1.0,0.0,0.2)
cont = ax.contour(X,Y,Z,levels)
cont.clabel(fmt='%1.1f', fontsize=12)
plt.show()
Zuerst werden die Koordinatenwerte in $ x $ und $ y $ eingegeben und $ X $ und $ Y $ in Gitterpunkte umgewandelt. Es gibt zwei Möglichkeiten, ein Diagramm in matplotlib zu zeichnen, es wird jedoch die Methode verwendet, die das Artist-Objekt verwendet. Es ist einer der Vorteile von matplotlib, dass Sie Zahlen in die Konturlinien einfügen können, also habe ich sie eingefügt.
Das obige Skript wird auf dem Terminal wie folgt ausgeführt, und das Konturdiagramm wird in einem separaten Fenster angezeigt.
python contour.py
Wenn Sie das Bild speichern möchten, klicken Sie in diesem Zeichnungsfenster auf die Schaltfläche Speichern, um es zu speichern, oder ändern Sie die Datei plot.show () am Ende des Skripts wie folgt.
plt.savefig('c2.png')
Ich habe vorgestellt, wie man mit der Funktion von matplotlib von Python einfach Konturlinien zeichnet. Dieses Mal werden nur die minimal erforderlichen Einstellungen für matplotlib festgelegt. Da matplotlib jedoch für jede Ecke des Diagramms detailliert festgelegt werden kann, ist es möglich, die Abbildung im Lehrbuch korrekt und sauber zu zeichnen, wenn Sie sich besonders dafür interessieren. ..
Recommended Posts