[PYTHON] Verstehe Gitterpunkte und spiele mit Konturlinien.

Hallo. Ist ** meshgrid ** nicht verwirrend? Heute werde ich mich auf ** Mesh Grid ** konzentrieren. Und ich werde mit der Kontur spielen, die eine Methode zum Zeichnen von ** Konturen ** ist.

Was ist * meshgrid *?

** meshgrid ** wird verwendet, um ** Gitterpunkte ** zu erstellen.

Was ist ein Gitterpunkt?

Punkte auf der Koordinatenebene, die sowohl in x- als auch in y-Koordinaten Ganzzahlen sind, werden als Gitterpunkte bezeichnet.

スクリーンショット 2019-12-18 17.11.24.png Mit anderen Worten, alle Punkte in diesem Bild.

Schreiben Sie nun den Code.

import numpy as np
x = [0, 1, 2, 3]
y = [0, 1, 2, 3]

X, Y = np.meshgrid(x, y)

X und Y sind wie folgt. スクリーンショット 2019-12-18 17.18.06.png Viele Leute fragen sich vielleicht, was das ist ~~~~~~~~~~?!?!?!?!?!?!?!, Aber bitte geben Sie Ihr Bestes. Lassen Sie uns herausfinden, was dies bedeutet. Mal sehen, wie die erste ** Koordinatenebene und diese Matrix zusammenhängen **. Siehe das Bild unten. スクリーンショット 2019-12-18 17.26.02.png

Wie ist das? Bist du ein bisschen gekommen? damit. Die Positionen der X- und Y-Matrizen stimmen mit den Koordinaten in der Ebene überein! (Obere und untere sind invertiert) Mit anderen Worten, die obere linke Seite der Matrix ist die untere linke Seite in Bezug auf die Koordinaten. Wenn Sie nach rechts unten in der Matrix gehen, gehen Sie in Bezug auf die Koordinaten nach rechts oben.

Wenn Sie wissen, dass sie übereinstimmen, sind die Größen von X und Y (len (y), len (x)). Und len (x) * len (y) = Anzahl der Gitterpunkte. Warum fragst du? Schreiben Sie es zuerst auf ein Blatt Papier und denken Sie langsam nach.

Betrachten wir x und y mit unterschiedlichen Größen. スクリーンショット 2019-12-18 17.40.30.png

Wenn man an X denkt, hat ** X immer nur 0 oder 1 als Element **. Weil das Array mit dem Namen x nur 0,1 enthält. Und wenn Sie sich 0 zu 1 als einen Stick vorstellen, können Sie 3 Sticks bei y = 0, 100, 200 stapeln. Dies bedeutet, dass Sie 3 Zeilen von [0, 1] benötigen. Die Matrix von X ist also 3 * 2 = len (y) * len (x).

Y ist das gleiche, nicht wahr?

Ich gab eine ziemlich verwirrende Erklärung, aber auf den Punkt gebracht ** Die Größe der Matrix entspricht der Länge x Breite der Gitterpunkte ** Dies ist sehr einfach und kann Verwirrung vermeiden. Trotzdem ist es wunderschön.

Zeichnen Sie Konturlinien mit Meshgrid.

import numpy as np
import matplotlib.pyplot as plt

# z = 2(x + y)
def f(x, y):
    return 2 * (x + y)

x = [-1, 0, 1, 2, 3]
y = [-1, 0, 1, 2, 3]

X, Y = np.meshgrid(x, y)

fig, ax = plt.subplots()
cont = ax.contour(X, Y, f(X, Y), levels=[0, 2, 4]) #Erklären Sie nur hier.
cont.clabel(fmt='%1.1f', fontsize=14)
plt.show()

Figure_1.png Das Ergebnis ist so. Wenn x = 2, y = -1 ist, dann ist z = 2 (2-1) = 2 · 1 = 2.

Ich werde nur * Kontur * erklären. contour(X, Y, Z=f(X,Y), levels=[0, 2, 4]) Erstens ist * Kontur * ein Werkzeug zum Finden von Konturlinien. Eine Konturlinie ist eine Verbindung der gleichen Werte von Z, die von x und y abgeleitet sind. X und Y sind Gitterpunkte, und f (X, Y) wird verwendet, um Z an jedem Gitterpunkt zu finden. Sie verbinden die Linien entlang dieses Z. Um das Z an jeder Position zu kennen, benötigen wir ** Gitterpunkte **. Die letzten Ebenen sind optional, die hier angegebenen werden jedoch als Linien angezeigt.

Zusammenfassung

Heute habe ich hauptsächlich über Meshgrid geschrieben. Dann habe ich mit Contour gespielt, einem Werkzeug zum Zeichnen von Konturlinien mit Meshgrid. meshgrid wird an vielen Stellen verwendet. Es ist ein Muss, es gut zu verstehen. Vielen Dank.

Verweise

Was ist ein Gitterpunkt?

Recommended Posts

Verstehe Gitterpunkte und spiele mit Konturlinien.
Spielen Sie mit Poancare-Serien und SymPy
Fraktal zum Erstellen und Spielen mit Python
Spielen Sie mit PDBBind von MoleculeNet und RDKitGridFeaturizer von DeepChem
Laden Sie csv mit Pandas und spielen Sie mit Index
Spiel mit dem Propheten
Spiele mit PyTorch
Spielen Sie mit 2016-Python
Spielen Sie mit CentOS 8
Spiel mit der Pyramide
Spiel mit Fathom
So schleifen und spielen Sie ein GIF-Video mit openCV ab
[How to!] Lerne und spiele Super Mario mit Tensorflow !!