Benutzerdefinierte Gittertransformation 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

Dieses Lab bietet einen Schritt-für-Schritt Leitfaden darüber, wie man GridHelperCurveLinear verwendet, um benutzerdefinierte Gitter und Striche zu definieren, indem man eine Transformation auf das Gitter anwendet. Wir werden die Matplotlib-Bibliothek in Python verwenden, um benutzerdefinierte Gitter und Striche zu erstellen.

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 nutzen.

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

Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren, einschließlich matplotlib.pyplot, numpy, ExtremeFinderSimple, MaxNLocator und GridHelperCurveLinear.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axisartist.axislines import Axes
from mpl_toolkits.axisartist.grid_finder import (ExtremeFinderSimple, MaxNLocator)
from mpl_toolkits.axisartist.grid_helper_curvelinear import GridHelperCurveLinear

Definieren von Transformationsfunktionen

Der zweite Schritt besteht darin, die Transformationsfunktionen zu definieren. In diesem Beispiel werden wir die tr-Funktion verwenden, um die x-Achsenwerte zu transformieren und die y-Achsenwerte unverändert zu lassen. Die inv_tr-Funktion wird verwendet, um die Transformation umzukehren.

def tr(x, y):
    return np.sign(x)*abs(x)**.5, y

def inv_tr(x, y):
    return np.sign(x)*x**2, y

Definieren von GridHelperCurveLinear

Der dritte Schritt besteht darin, die GridHelperCurveLinear-Instanz zu definieren. Wir werden die in Schritt 2 definierten Transformationsfunktionen verwenden, um das Gitter zu transformieren. Wir werden auch grid_locator1 und grid_locator2 auf MaxNLocator(nbins=6) setzen, um die Strichdichte zu erhöhen.

grid_helper = GridHelperCurveLinear(
    (tr, inv_tr),
    extreme_finder=ExtremeFinderSimple(20, 20),
    grid_locator1=MaxNLocator(nbins=6), grid_locator2=MaxNLocator(nbins=6))

Definieren von Achsen und Anzeigen eines Bildes

Der vierte Schritt besteht darin, die Achsen mithilfe der in Schritt 3 erstellten grid_helper-Instanz zu definieren. Wir werden auch ein Bild mit der imshow-Funktion anzeigen.

ax1 = fig.add_subplot(axes_class=Axes, grid_helper=grid_helper)
ax1.imshow(np.arange(25).reshape(5, 5), vmax=50, cmap=plt.cm.gray_r, origin="lower")

Erstellen der Figur

Der letzte Schritt besteht darin, die Figur mit der plt.figure-Funktion zu erstellen. Wir werden die Figurgröße auf (7, 4) setzen und die in Schritten 2 - 4 erstellte curvelinear_test1-Funktion aufrufen.

if __name__ == "__main__":
    fig = plt.figure(figsize=(7, 4))
    curvelinear_test1(fig)
    plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man GridHelperCurveLinear verwendet, um benutzerdefinierte Gitter und Striche zu definieren, indem man eine Transformation auf das Gitter anwendet. Wir haben die Python-Bibliothek Matplotlib verwendet, um ein benutzerdefiniertes Gitter und Striche für eine 5x5-Matrix zu erstellen, die auf den Achsen angezeigt wird.