Einfache Achsenabstände

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 lernen Sie, wie Sie die add_floating_axis-Funktion in Matplotlib verwenden, um fließende Achsen zu einem Graphen hinzuzufügen, die verwendet werden können, um zusätzliche Informationen über den Graphen anzuzeigen. Insbesondere lernen Sie, wie Sie den Abstand zwischen den Skalenmarkierungen und den Achsenbeschriftungen anpassen, sowie wie Sie die Position der Skalenmarkierungen auf den fließenden Achsen anpassen.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine 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 der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

Zunächst importieren Sie die erforderlichen Bibliotheken, einschließlich matplotlib.pyplot, numpy und mpl_toolkits.axisartist.

import matplotlib.pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist

Definiere die Funktion zum Einrichten der Achsen

Als nächstes definieren Sie die setup_axes()-Funktion, die die polare Projektion des Graphen einrichtet. Diese Funktion verwendet ein GridHelperCurveLinear, um eine polare Projektion in einem rechteckigen Rahmen zu erstellen. Sie setzt auch die Grenzen des Graphen und gibt das ax1-Objekt zurück.

def setup_axes(fig, rect):
    ## Definiere die PolarAxes-Transformation und den Extremwertfinder
    tr = 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))

    ## Definiere die Grid-Locatoren und -Formatter
    grid_locator1 = angle_helper.LocatorDMS(12)
    grid_locator2 = grid_finder.MaxNLocator(5)
    tick_formatter1 = angle_helper.FormatterDMS()

    ## Definiere das GridHelperCurveLinear
    grid_helper = GridHelperCurveLinear(tr, extreme_finder=extreme_finder, grid_locator1=grid_locator1, grid_locator2=grid_locator2, tick_formatter1=tick_formatter1)

    ## Erstelle das Achsenobjekt und setze seine Grenzen
    ax1 = fig.add_subplot(rect, axes_class=axisartist.Axes, grid_helper=grid_helper)
    ax1.axis[:].set_visible(False)
    ax1.set_aspect(1.)
    ax1.set_xlim(-5, 12)
    ax1.set_ylim(-5, 10)

    return ax1

Definiere die Funktion zum Hinzufügen einer fließenden Achse

Definiere die add_floating_axis-Funktion, die einer Grafik eine fließende Achse hinzufügt. Diese Funktion nimmt das ax1-Objekt als Argument entgegen und gibt das axis-Objekt zurück.

def add_floating_axis(ax1):
    ## Definiere die fließende Achse
    ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 30)
    axis.label.set_text(r"$\theta = 30^{\circ}$")
    axis.label.set_visible(True)

    return axis

Füge Abstand zu den Skalenmarkierungen hinzu

In diesem Schritt fügen Sie Abstand zu den Skalenmarkierungen auf der fließenden Achse hinzu. Dies kann durch Festlegen des pad-Attributs des major_ticklabels-Objekts auf den gewünschten Abstands-Wert erreicht werden.

## Add Padding to Tick Labels
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)

ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)

ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.major_ticklabels.set_pad(10)

plt.show()

Anpassen des Abstands der Achsenbeschriftung

In diesem Schritt passen Sie den Abstand der Achsenbeschriftung auf der fließenden Achse an. Dies kann durch Festlegen des pad-Attributs des label-Objekts auf den gewünschten Abstands-Wert erreicht werden.

## Adjust Axis Label Padding
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)

ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)

ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.label.set_pad(20)

plt.show()

Anpassen der Skalenmarkierungs-Position

In diesem Schritt passen Sie die Position der Skalenmarkierungen auf der fließenden Achse an. Dies kann durch Festlegen des tick_out-Attributs des major_ticks-Objekts auf True erreicht werden.

## Adjust Tick Position
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)

ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)

ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.major_ticks.set_tick_out(True)

plt.show()

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die add_floating_axis-Funktion in Matplotlib verwenden, um fließende Achsen zu einer Grafik hinzuzufügen. Sie haben auch gelernt, wie Sie den Abstand von Skalenmarkierungen und Achsenbeschriftungen anpassen, sowie wie Sie die Position der Skalenmarkierungen auf den fließenden Achsen anpassen. Am Ende dieses Labs sollten Sie in der Lage sein, benutzerdefinierte Grafiken mit fließenden Achsen zu erstellen, die zusätzliche Informationen zur Grafik anzeigen.