Zeichnen Sie Konturlinien, die in Lehrbüchern erscheinen (Python).

Dieser Artikel ist eine Fortsetzung von Konturlinien in Lehrbüchern zeichnen (Fortan + Gnuplot).

Einführung

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.

Vorbereitung: Installieren Sie Python und die erforderlichen Module

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.

Zielflussfeld

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. $ \phi = -\frac{m}{r},\, r = \sqrt{x^2+y^2+z^2} \tag{1} $ Hier ist $ m $ ein Koeffizient, der als Stärke des Ausblasens bezeichnet wird. Ich möchte Konturlinien in zwei Dimensionen zeichnen, also setze $ z = 0 $ $ \phi = -\frac{m}{r},\, r = \sqrt{x^2+y^2} \tag{2} $ Versuche zu zeichnen.

Arbeitspolitik

Das matplotlib-Modul von Python kann verschiedene Arten von Zeichnungen zeichnen, sodass die Arbeit nur mit Python gelöst werden kann.

  1. Erstellen Sie zweidimensionale Gitterpunkte (Quadrate mit gleichem Abstand) mit der Funktion numpy und berechnen Sie den Wert von $ \ phi (= \ phi_ {i, j}) $ an jedem Gitterpunkt.
  2. Zeichnen Sie Konturlinien mit der Funktion matplotlib.

Erstellen Sie ein Python-Skript im Flow. Da wir keine fortgeschrittenen Dinge tun, berücksichtigen wir keine Objektorientierung.

grid.png

Python-Skript

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

c2.png

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

Zusammenfassung

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

Zeichnen Sie Konturlinien, die in Lehrbüchern erscheinen (Python).
Zeichnen Sie ein Diagramm mit Python
Formeln, die unter Mathematik mit Python ausführen angezeigt werden
Zeichnen Sie MP3-Wellenformen in Python
Zeichnen Sie die Festplatte von Poancare in Python
Zeichnen Sie "Farn programmgesteuert zeichnen" in Python
Zeichne die Yin-Funktion in Python
Segfo Python in 2 Zeilen
Zeichne ein Herz in Python
Python-Installation in 2 Zeilen @Windows
Zeichnen Sie Sinuswellen mit Blender Python
Zeichnen Sie Knoten interaktiv mit Plotly (Python)
Zeichnen Sie eine Streudiagrammmatrix mit Python
Segfo Python in drei Zeilen
Zeichnen Sie ein CNN-Diagramm in Python
Gefaltetes Liniendiagramm und Skalierungslinie in Python
Zeichnen Sie Nozomi Sasaki in Excel mit Python
Mit Python Teil 2 ein Herz zeichnen (SymPy Edition)
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Ein Liner, der neunundneunzig in Python ausgibt
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Ein Memo, das ich schnell in Python geschrieben habe
Lesen Sie eine Datei mit verstümmelten Linien in Python
Erstellen einer Umgebung, die Python mit Eclipse verwendet
Ein Programm, das doppelte Anweisungen in Python entfernt
Statische Typprüfung, die in Python lose beginnt
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Testmethoden, die zufällige Werte in Python zurückgeben
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Diejenige, die den Fortschrittsbalken in Python anzeigt
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
[Einführung in Python] Zusammenfassung der Funktionen und Methoden, die häufig in Python vorkommen [Problemformat]
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.