Einführung
Beim Datenvisualisierung ist es entscheidend, klare und lesbare Diagramme zu haben. Erstellt man jedoch mehrere Teilbilder, kann es schwierig sein, Überlappungen zwischen Achsenobjekten und Beschriftungen zu vermeiden. In solchen Fällen können wir ein Feature namens constrained layout in Matplotlib verwenden, das die Teilbilder automatisch anpasst, um Überlappungen zwischen Achsenobjekten und Beschriftungen zu verhindern.
VM-Tipps
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der linken oberen 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
Wir beginnen mit dem Importieren der erforderlichen Bibliotheken zum Erstellen von Teilbildern und zum Plotten von Daten.
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
Definieren eines Beispiel-Diagramms
Wir definieren eine Funktion, die ein einfaches Liniendiagramm mit x- und y-Beschriftungen und einem Titel erstellt.
def example_plot(ax):
ax.plot([1, 2])
ax.set_xlabel('x-label', fontsize=12)
ax.set_ylabel('y-label', fontsize=12)
ax.set_title('Title', fontsize=14)
Erstellen von Teilbildern ohne Constrained Layout
Wir erstellen eine Figur mit 2x2 Teilbildern, ohne das constrained layout zu verwenden. Dies führt zu überlappenden Beschriftungen auf den Achsen.
fig, axs = plt.subplots(nrows=2, ncols=2, layout=None)
for ax in axs.flat:
example_plot(ax)
Erstellen von Teilbildern mit Constrained Layout
Wir erstellen die gleichen 2x2 Teilbilder, aber diesmal verwenden wir das constrained layout. Dies passt die Teilbilder automatisch an, um Überlappungen zwischen Achsenobjekten und Beschriftungen zu vermeiden.
fig, axs = plt.subplots(nrows=2, ncols=2, layout='constrained')
for ax in axs.flat:
example_plot(ax)
Erstellen von geschachtelten Gridspecs mit Constrained Layout
Wir erstellen ein komplexeres Beispiel, indem wir geschachtelte Gridspecs mit constrained layout verwenden. Dies ermöglicht uns, mehr Kontrolle über das Layout der Teilbilder zu haben.
fig = plt.figure(layout='constrained')
gs0 = gridspec.GridSpec(1, 2, figure=fig)
gs1 = gridspec.GridSpecFromSubplotSpec(3, 1, subplot_spec=gs0[0])
for n in range(3):
ax = fig.add_subplot(gs1[n])
example_plot(ax)
gs2 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs0[1])
for n in range(2):
ax = fig.add_subplot(gs2[n])
example_plot(ax)
plt.show()
Zusammenfassung
Das constrained layout ist eine nützliche Funktion in Matplotlib, die die Teilbilder automatisch anpasst, um Überlappungen zwischen Achsenobjekten und Beschriftungen zu vermeiden. Es ist besonders nützlich, wenn mehrere Teilbilder in einer Figur erstellt werden. Indem Sie den in diesem Tutorial beschriebenen Schritten folgen, können Sie klare und lesbare Diagramme erstellen, ohne sich um überlappende Beschriftungen sorgen zu müssen.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Resizing Axes With Constrained Layout" abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.