Einführung
In diesem Lab werden Sie durch den Prozess des Erstellens eines Konturplots mit Matplotlib in Python geführt. Sie werden lernen, wie man Kurven mit größeren Werten generiert und wie man ~matplotlib.patheffects.TickedStroke verwendet, um zwischen den gültigen und ungültigen Seiten der Beschränkungsgrenzen zu unterscheiden.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
Um loszulegen, müssen Sie die erforderlichen Bibliotheken importieren. Matplotlib und NumPy sind erforderlich, um den Konturplot zu erstellen.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patheffects
Einrichten der Messvektoren und -matrizen
Als nächstes richten Sie die Messvektoren und -matrizen ein. Entwerfen Sie die Scheibenbelastung und das Übersetzungsverhältnis.
nx = 101
ny = 105
## Set up survey vectors
xvec = np.linspace(0.001, 4.0, nx)
yvec = np.linspace(0.001, 4.0, ny)
## Set up survey matrices. Design disk loading and gear ratio.
x1, x2 = np.meshgrid(xvec, yvec)
Auswerten der Daten zum Plotten
Jetzt werten Sie einige Daten aus, um sie zu plotten. In diesem Beispiel werden wir eine Zielfunktion, g1, g2 und g3 plotten.
## Evaluate some stuff to plot
obj = x1**2 + x2**2 - 2*x1 - 2*x2 + 2
g1 = -(3*x1 + x2 - 5.5)
g2 = -(x1 + 2*x2 - 4.5)
g3 = 0.8 + x1**-3 - x2
Erstellen des Konturplots
Jetzt erstellen Sie den Konturplot mit der ax.contour()-Methode. Diese Methode wird verwendet, um die Topographie der Zielfunktion darzustellen und die Randkurven der Nebenbedingungen zu generieren.
fig, ax = plt.subplots(figsize=(6, 6))
cntr = ax.contour(x1, x2, obj, [0.01, 0.1, 0.5, 1, 2, 4, 8, 16], colors='black')
ax.clabel(cntr, fmt="%2.1f", use_clabeltext=True)
cg1 = ax.contour(x1, x2, g1, [0], colors='sandybrown')
plt.setp(cg1.collections, path_effects=[patheffects.withTickedStroke(angle=135)])
cg2 = ax.contour(x1, x2, g2, [0], colors='orangered')
plt.setp(cg2.collections, path_effects=[patheffects.withTickedStroke(angle=60, length=2)])
cg3 = ax.contour(x1, x2, g3, [0], colors='mediumblue')
plt.setp(cg3.collections, path_effects=[patheffects.withTickedStroke(spacing=7)])
ax.set_xlim(0, 4)
ax.set_ylim(0, 4)
plt.show()
Interpretieren der Ergebnisse
Das resultierende Diagramm zeigt die Topographie der Zielfunktion und die Randkurven der Nebenbedingungen. Die ~matplotlib.patheffects.TickedStroke wird verwendet, um zwischen der gültigen und ungültigen Seite der Nebenbedingungsgrenzen zu unterscheiden.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie man mit Matplotlib in Python einen Konturplot erstellt. Sie haben auch gelernt, wie man Kurven mit größeren Werten generiert und wie man ~matplotlib.patheffects.TickedStroke verwendet, um zwischen der gültigen und ungültigen Seite der Nebenbedingungsgrenzen zu unterscheiden.