Axengröße anpassen mit Constrained Layout

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

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.