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.
** meshgrid ** wird verwendet, um ** Gitterpunkte ** zu erstellen.
Mit anderen Worten, alle Punkte in diesem Bild.Punkte auf der Koordinatenebene, die sowohl in x- als auch in y-Koordinaten Ganzzahlen sind, werden als Gitterpunkte bezeichnet.
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. 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.
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.
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.
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()
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.
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.
Recommended Posts