Achsenrichtung in Matplotlib ändern

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 lernst du, wie du die Achsenrichtung in einem Matplotlib-Diagramm mit der set_axis_direction()-Methode ändern kannst. Mit dieser Methode kannst du die Richtung einer Achse in eine beliebige der vier Hauptrichtungen ändern: oben, unten, links oder rechts.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal musst du 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 du während des Lernens Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Bibliotheken importieren

Zunächst müssen wir die erforderlichen Bibliotheken für dieses Lab importieren. Wir werden numpy und matplotlib verwenden.

import matplotlib.pyplot as plt
import numpy as np

Das Diagramm einrichten

Als nächstes definieren wir eine Funktion setup_axes(), die die polare Projektion in einem rechteckigen Rahmen einrichtet. Diese Funktion verwendet GridHelperCurveLinear, um eine polare Projektion mit einem rechteckigen Rahmen zu erstellen.

from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist as axisartist
import mpl_toolkits.axisartist.angle_helper as angle_helper
import mpl_toolkits.axisartist.grid_finder as grid_finder
from mpl_toolkits.axisartist.grid_helper_curvelinear import \
    GridHelperCurveLinear

def setup_axes(fig, rect):
    """Polare Projektion, aber in einem rechteckigen Rahmen."""
    grid_helper = GridHelperCurveLinear(
        Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform(),
        extreme_finder=angle_helper.ExtremeFinderCycle(
            20, 20,
            lon_cycle=360, lat_cycle=None,
            lon_minmax=None, lat_minmax=(0, np.inf),
        ),
        grid_locator1=angle_helper.LocatorDMS(12),
        grid_locator2=grid_finder.MaxNLocator(5),
        tick_formatter1=angle_helper.FormatterDMS(),
    )
    ax = fig.add_subplot(
        rect, axes_class=axisartist.Axes, grid_helper=grid_helper,
        aspect=1, xlim=(-5, 12), ylim=(-5, 10))
    ax.axis[:].toggle(ticklabels=False)
    ax.grid(color=".9")
    return ax

Hinzufügen von fließenden Achsen

Wir werden zwei Funktionen definieren, die fließende Achsen zu unserem Diagramm hinzufügen. Die erste Funktion add_floating_axis1() fügt einer Achse mit dem Label theta = 30 hinzu. Die zweite Funktion add_floating_axis2() fügt einer Achse mit dem Label r = 6 hinzu.

def add_floating_axis1(ax):
    ax.axis["lat"] = axis = ax.new_floating_axis(0, 30)
    axis.label.set_text(r"$\theta = 30^{\circ}$")
    axis.label.set_visible(True)
    return axis

def add_floating_axis2(ax):
    ax.axis["lon"] = axis = ax.new_floating_axis(1, 6)
    axis.label.set_text(r"$r = 6$")
    axis.label.set_visible(True)
    return axis

Ändern der Achsenrichtung

Jetzt erstellen wir eine Schleife, um vier verschiedene Diagramme mit der fließenden Achse in jeder der vier Hauptrichtungen einzurichten. In der Schleife verwenden wir add_floating_axis1() und add_floating_axis2(), um die fließenden Achsen hinzuzufügen, und set_axis_direction(), um die Achsenrichtung festzulegen.

fig = plt.figure(figsize=(8, 4), layout="constrained")

for i, d in enumerate(["bottom", "left", "top", "right"]):
    ax = setup_axes(fig, rect=241+i)
    axis = add_floating_axis1(ax)
    axis.set_axis_direction(d)
    ax.set(title=d)

for i, d in enumerate(["bottom", "left", "top", "right"]):
    ax = setup_axes(fig, rect=245+i)
    axis = add_floating_axis2(ax)
    axis.set_axis_direction(d)
    ax.set(title=d)

plt.show()

Betrachten des Diagramms

Schließlich betrachten wir das Diagramm. Wir können das gleiche Diagramm mit der fließenden Achse in jeder der vier Hauptrichtungen sehen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Achsenrichtung in einem Matplotlib-Diagramm mithilfe der set_axis_direction()-Methode ändern können. Mit dieser Methode können Sie die Richtung einer Achse leicht in eine der vier Hauptrichtungen ändern: oben, unten, links oder rechts.