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.