Optimierung von Konturplots mit Matplotlib

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.