Matplotlib Diagrammtitelpositionierung

MatplotlibMatplotlibBeginner
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 Titel auf mit Matplotlib erstellten Diagrammen positionieren können. Diagrammtitel helfen den Betrachtern zu verstehen, welche Informationen eine Visualisierung vermittelt. Matplotlib bietet mehrere Optionen für die Positionierung dieser Titel - zentriert (die Standardeinstellung), linksbündig, rechtsbündig oder mit benutzerdefinierter vertikaler Positionierung.

Am Ende dieses Labs können Sie:

  • Ein einfaches Diagramm mit einem zentrierten Titel erstellen
  • Titel links oder rechts eines Diagramms positionieren
  • Ein Diagramm mit einem Titel an einer benutzerdefinierten Position erstellen
  • Verschiedene Methoden verwenden, um die Titelpositionierung anzupassen

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlotCustomizationGroup(["Plot Customization"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") matplotlib/AdvancedPlottingGroup -.-> matplotlib/subplots("Subplots") matplotlib/PlotCustomizationGroup -.-> matplotlib/titles_labels("Adding Titles and Labels") matplotlib/AdvancedTopicsGroup -.-> matplotlib/matplotlib_config("Customizing Matplotlib Configurations") subgraph Lab Skills matplotlib/line_plots -.-> lab-48998{{"Matplotlib Diagrammtitelpositionierung"}} matplotlib/subplots -.-> lab-48998{{"Matplotlib Diagrammtitelpositionierung"}} matplotlib/titles_labels -.-> lab-48998{{"Matplotlib Diagrammtitelpositionierung"}} matplotlib/matplotlib_config -.-> lab-48998{{"Matplotlib Diagrammtitelpositionierung"}} end

Grundlegende Diagrammerstellung mit Standardtitelposition

In diesem Schritt erstellen Sie ein einfaches Linien Diagramm und fügen einen zentrierten Titel hinzu, was die Standardposition in Matplotlib ist.

Erstellen eines Jupyter Notebooks

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und auf Jupyter Notebook zuzugreifen.

click-notebook

Sie müssen möglicherweise einige Sekunden warten, bis Jupyter Notebook fertig geladen hat. Aufgrund der Einschränkungen von Jupyter Notebook kann die Validierung von Vorgängen nicht automatisiert werden.

Wenn Sie während des Labs auf Probleme stoßen, können Sie sich gerne an Labby wenden. Bitte geben Sie nach der Sitzung Feedback ab, damit wir alle Probleme umgehend beheben können.

Importieren von Matplotlib

Jetzt beginnen wir mit dem Importieren der Matplotlib-Bibliothek. Geben Sie in der ersten Zelle Ihres Notebooks den folgenden Code ein und führen Sie ihn aus, indem Sie Shift+Enter drücken:

import matplotlib.pyplot as plt

Dies importiert das pyplot-Modul aus Matplotlib und weist es dem Alias plt zu, was eine gängige Konvention ist.

Erstellen eines einfachen Diagramms

Als Nächstes erstellen wir ein einfaches Linien Diagramm. Geben Sie in einer neuen Zelle den folgenden Code ein und führen Sie ihn aus:

plt.figure(figsize=(8, 5))  ## Create a figure with a specific size
plt.plot(range(10))         ## Plot numbers from 0 to 9
plt.grid(True)              ## Add a grid for better readability
plt.show()                  ## Display the plot

Sie sollten ein einfaches Linien Diagramm mit Werten von 0 bis 9 in der Ausgabe sehen.

line-plot

Hinzufügen eines Standard- (zentrierten) Titels

Jetzt fügen wir unserem Diagramm einen Titel hinzu. Die Standardposition für einen Titel ist zentriert entlang der oberen Seite des Diagramms. Geben Sie in einer neuen Zelle den folgenden Code ein:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('My First Matplotlib Plot')  ## Add a centered title
plt.show()
line-plot-with-title

Führen Sie die Zelle aus, und Sie sollten das Diagramm mit einem zentrierten Titel oben sehen.

Die title()-Funktion ohne zusätzliche Parameter platziert den Titel in der Mitte, was die Standardposition ist.

Linke und rechte Titelpositionierung

Matplotlib ermöglicht es Ihnen, den Titel auf der linken oder rechten Seite des Diagramms zu positionieren, indem Sie den Parameter loc verwenden. In diesem Schritt lernen Sie, wie Sie Titel links und rechts in Ihren Diagrammen ausrichten können.

Erstellen eines Diagramms mit einem linksbündigen Titel

Erstellen wir ein Diagramm, bei dem der Titel auf der linken Seite positioniert ist. Geben Sie in einer neuen Zelle den folgenden Code ein:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Left-Aligned Title', loc='left')  ## Position the title at the left
plt.show()
left-aligned-title

Führen Sie die Zelle aus. Beachten Sie, wie der Titel jetzt linksbündig am Diagrammrand und nicht mehr zentriert erscheint.

Der Parameter loc in der Funktion title() bestimmt die horizontale Position des Titels. Indem Sie loc='left' festlegen, sagen Sie Matplotlib, den Titel auf der linken Seite des Diagramms zu positionieren.

Erstellen eines Diagramms mit einem rechtsbündigen Titel

Jetzt erstellen wir ein weiteres Diagramm, bei dem der Titel auf der rechten Seite positioniert ist. Geben Sie in einer neuen Zelle den folgenden Code ein:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Right-Aligned Title', loc='right')  ## Position the title at the right
plt.show()
right-aligned-title

Führen Sie die Zelle aus. Der Titel sollte jetzt rechtsbündig am Diagrammrand erscheinen.

Vergleich verschiedener Titelpositionen

Erstellen wir eine Abfolge von drei Diagrammen, um die verschiedenen Titelpositionen (zentriert, links und rechts) zu vergleichen. Geben Sie in einer neuen Zelle den folgenden Code ein:

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Center-aligned title (default)
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Center Title')

## Plot 2: Left-aligned title
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Left Title', loc='left')

## Plot 3: Right-aligned title
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Right Title', loc='right')

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()
three-title-positions

Führen Sie die Zelle aus, um alle drei Titelpositionen nebeneinander zu sehen. Dieser visuelle Vergleich hilft Ihnen zu verstehen, wie der Parameter loc die Titelpositionierung beeinflusst.

Beachten Sie, dass wir bei der Arbeit mit Teil-Diagrammen (Subplots) die Methode set_title() auf den einzelnen Achsenobjekten anstelle der globalen Funktion plt.title() verwenden.

Benutzerdefinierte vertikale Titelpositionierung

Manchmal möchten Sie möglicherweise die vertikale Position Ihres Titels anpassen. In diesem Schritt lernen Sie, wie Sie die vertikale (y-Achse) Position der Diagrammtitel manuell steuern können.

Grundlegendes zur Y-Position in Titeln

Die vertikale Position eines Titels kann mithilfe des Parameters y in der Funktion title() angepasst werden. Der Parameter y akzeptiert Werte in normalisierten Koordinaten, wobei:

  • y = 1.0 (Standard) platziert den Titel oben am Diagramm
  • y > 1.0 platziert den Titel über dem oberen Rand des Diagramms
  • y < 1.0 platziert den Titel unter dem oberen Rand des Diagramms, näher am Diagramminhalt

Erstellen eines Diagramms mit benutzerdefinierter Y-Position des Titels

Erstellen wir ein Diagramm, bei dem der Titel höher als standardmäßig positioniert ist. Geben Sie in einer neuen Zelle den folgenden Code ein:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Higher Title Position', y=1.1)  ## Position the title higher
plt.show()

Führen Sie die Zelle aus. Beachten Sie, wie der Titel jetzt im Vergleich zur Standardposition etwas höher über dem Diagramm erscheint.

Jetzt erstellen wir ein Diagramm, bei dem der Titel tiefer als standardmäßig positioniert ist:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Lower Title Position', y=0.9)  ## Position the title lower
plt.show()

Führen Sie die Zelle aus. Der Titel sollte jetzt näher am Diagramminhalt erscheinen.

Vergleich verschiedener Y-Positionen

Erstellen wir mehrere Diagramme nebeneinander, um verschiedene vertikale Titelpositionen zu vergleichen:

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Default Y-position
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Default Position (y=1.0)')

## Plot 2: Higher Y-position
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Higher Position', y=1.15)

## Plot 3: Lower Y-position
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Lower Position', y=0.85)

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()

Führen Sie die Zelle aus, um alle drei vertikalen Positionen nebeneinander zu sehen. Dieser Vergleich hilft Ihnen zu verstehen, wie der Parameter y die vertikale Position des Titels beeinflusst.

Kombination von horizontaler und vertikaler Positionierung

Sie können den Parameter loc (für die horizontale Ausrichtung) mit dem Parameter y (für die vertikale Position) kombinieren, um den Titel genau dort zu platzieren, wo Sie ihn haben möchten:

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Custom Positioned Title', loc='right', y=1.1)  ## Right-aligned and higher
plt.show()

Führen Sie die Zelle aus. Der Titel sollte jetzt rechtsbündig am Diagrammrand erscheinen und höher als standardmäßig positioniert sein.

Fortgeschrittene Titelpositionierung mit Teil-Diagrammen (Subplots)

In diesem Schritt lernen Sie fortgeschrittene Techniken zur Titelpositionierung, wenn Sie mit Teil-Diagramm-Layouts (Subplot-Layouts) und Achsenobjekten arbeiten. Sie erfahren auch, wie Sie die Funktion suptitle() verwenden können, um einem Diagramm mit mehreren Teil-Diagrammen einen Gesamt-Titel hinzuzufügen.

Erstellen eines Diagramms mit Teil-Diagrammen und individuellen Titeln

Erstellen wir ein 2x2-Raster von Teil-Diagrammen, wobei jedes seinen eigenen, unterschiedlich positionierten Titel hat:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data and set titles with different positions for each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)

## Top-left subplot: Default centered title
axes[0].set_title('Default (Centered)')

## Top-right subplot: Left-aligned title
axes[1].set_title('Left-Aligned', loc='left')

## Bottom-left subplot: Right-aligned title
axes[2].set_title('Right-Aligned', loc='right')

## Bottom-right subplot: Custom positioned title
axes[3].set_title('Custom Position', y=0.85, loc='center')

## Add spacing between subplots
plt.tight_layout()
plt.show()

Führen Sie die Zelle aus. Sie sollten vier Teil-Diagramme sehen, jedes mit einem unterschiedlich positionierten Titel.

Hinzufügen eines Diagramm-Titels mit suptitle()

Wenn Sie mit mehreren Teil-Diagrammen arbeiten, möchten Sie möglicherweise einen Gesamt-Titel für das gesamte Diagramm hinzufügen. Dies kann mit der Funktion suptitle() erreicht werden:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1}')

## Add an overall title to the figure
fig.suptitle('Multiple Subplots with an Overall Title', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Führen Sie die Zelle aus. Sie sollten vier Teil-Diagramme sehen, jedes mit seinem eigenen Titel, und einen Gesamt-Titel für das Diagramm oben.

Kombination von Achsen-Titeln und Diagramm-Titeln

Sie können individuelle Teil-Diagramm-Titel mit einem Gesamt-Diagramm-Titel kombinieren:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Plot data on each subplot with different title positions
axes[0, 0].plot(range(10))
axes[0, 0].grid(True)
axes[0, 0].set_title('Centered Title', loc='center')

axes[0, 1].plot(range(10))
axes[0, 1].grid(True)
axes[0, 1].set_title('Left-Aligned Title', loc='left')

axes[1, 0].plot(range(10))
axes[1, 0].grid(True)
axes[1, 0].set_title('Right-Aligned Title', loc='right')

axes[1, 1].plot(range(10))
axes[1, 1].grid(True)
axes[1, 1].set_title('Lower Title', y=0.85)

## Add an overall title to the figure
fig.suptitle('Advanced Title Positioning Demo', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Führen Sie die Zelle aus. Sie sollten ein Diagramm mit vier Teil-Diagrammen sehen, jedes mit einem unterschiedlich positionierten Titel, und einen Gesamt-Titel oben am Diagramm.

Die Funktion suptitle() ist nützlich, um einen Haupt-Titel hinzuzufügen, der das gesamte Diagramm beschreibt, während einzelne Aufrufe von set_title() auf Achsenobjekten spezifischere Titel für jedes Teil-Diagramm hinzufügen.

Globale Titelpositionierung mit RCParams

In diesem letzten Schritt lernen Sie, wie Sie Matplotlibs Laufzeitkonfigurationsparameter (RCParams) verwenden können, um globale Standardwerte für die Titelpositionierung festzulegen. Dies ist nützlich, wenn Sie möchten, dass alle Diagramme in Ihrem Notebook oder Skript eine konsistente Titelpositionierung verwenden, ohne dass Sie dies für jedes Diagramm individuell angeben müssen.

Grundlegendes zu RCParams in Matplotlib

Das Verhalten von Matplotlib kann mithilfe einer wörterbuchähnlichen Variable namens rcParams angepasst werden. Dies ermöglicht es Ihnen, globale Standardwerte für verschiedene Eigenschaften festzulegen, einschließlich der Titelpositionierung.

Festlegen der globalen Titelpositionierung mit rcParams

Legen wir globale Standardwerte für die Titelpositionierung fest und erstellen dann einige Diagramme, die automatisch diese Einstellungen verwenden:

## View the current default values
print("Default title y position:", plt.rcParams['axes.titley'])
print("Default title padding:", plt.rcParams['axes.titlepad'])

Führen Sie die Zelle aus, um die Standardwerte anzuzeigen. Jetzt ändern wir diese Einstellungen:

## Set new global defaults for title positioning
plt.rcParams['axes.titley'] = 1.05     ## Set title y position higher
plt.rcParams['axes.titlepad'] = 10     ## Set padding between title and plot
plt.rcParams['axes.titlelocation'] = 'left'  ## Set default alignment to left

## Create a plot that will use the new defaults
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Global RCParams Settings')
plt.show()

Führen Sie die Zelle aus. Beachten Sie, wie der Titel gemäß den von uns definierten globalen Einstellungen positioniert wird, obwohl wir keine Positionierungsparameter in der title()-Funktion angegeben haben.

Erstellen mehrerer Diagramme mit denselben Einstellungen

Erstellen wir mehrere Diagramme, die alle unsere globalen Einstellungen verwenden:

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot with titles that use global settings
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1} Using Global Settings')

plt.tight_layout()
plt.show()

Führen Sie die Zelle aus. Alle vier Teil-Diagramm-Titel sollten gemäß den von uns zuvor definierten globalen Einstellungen positioniert sein.

Zurücksetzen der RCParams auf die Standardwerte

Wenn Sie die RCParams auf ihre Standardwerte zurücksetzen möchten, können Sie die Funktion rcdefaults() verwenden:

## Reset to default settings
plt.rcdefaults()

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Default Settings Again')
plt.show()

Führen Sie die Zelle aus. Der Titel sollte jetzt unter Verwendung der Standard-Einstellungen von Matplotlib positioniert sein.

Temporäre Änderungen der RCParams

Wenn Sie die RCParams nur für einen bestimmten Abschnitt Ihres Codes temporär ändern möchten, können Sie einen Kontext-Manager verwenden:

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Default Settings')
plt.show()

## Temporarily change RCParams for just this section
with plt.rc_context({'axes.titlelocation': 'right', 'axes.titley': 1.1}):
    plt.figure(figsize=(8, 5))
    plt.plot(range(10))
    plt.grid(True)
    plt.title('Temporary Settings Change')
    plt.show()

## Create another plot that will use default settings again
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Back to Default Settings')
plt.show()

Führen Sie die Zelle aus. Sie sollten drei Diagramme sehen:

  1. Das erste mit der Standard-Titelpositionierung
  2. Das zweite mit einem rechtsbündigen und höher positionierten Titel (aufgrund der temporären Einstellungen)
  3. Das dritte wieder mit der Standard-Titelpositionierung (da die temporären Einstellungen nur innerhalb des Kontext-Managers gelten)

Dieser Ansatz ermöglicht es Ihnen, temporäre Änderungen an den globalen Einstellungen vorzunehmen, ohne die restlichen Diagramme zu beeinflussen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Positionierung von Diagrammtiteln in Matplotlib steuern können:

  • Grundlegende Titelpositionierung: Sie haben einfache Diagramme mit zentrierten Titeln mithilfe der Standardpositionierung erstellt.

  • Horizontale Positionierung: Sie haben gelernt, wie Sie Titel links oder rechts eines Diagramms ausrichten können, indem Sie den Parameter loc verwenden.

  • Vertikale Positionierung: Sie haben herausgefunden, wie Sie die vertikale Position von Titeln mithilfe des Parameters y anpassen können, um sie höher oder niedriger relativ zum Diagramm zu platzieren.

  • Fortgeschrittene Techniken mit Teil-Diagrammen (Subplots): Sie haben untersucht, wie Sie Titel auf einzelnen Teil-Diagrammen positionieren können und wie Sie einen Gesamt-Titel für das Diagramm mithilfe von suptitle() hinzufügen können.

  • Globale Einstellungen mit RCParams: Sie haben gelernt, wie Sie globale Standardwerte für die Titelpositionierung mithilfe von Matplotlibs Laufzeitkonfigurationsparametern festlegen können, um eine konsistente Gestaltung über mehrere Diagramme hinweg zu ermöglichen.

Diese Fähigkeiten werden Ihnen helfen, professionellere und optisch ansprechendere Datenvisualisierungen zu erstellen, bei denen die Titel genau dort positioniert sind, wo Sie sie haben möchten. Die Titelpositionierung ist ein kleiner, aber wichtiger Aspekt einer effektiven Datenvisualisierung, der dazu beiträgt, die Aufmerksamkeit Ihres Publikums zu lenken und die Gesamtübersichtlichkeit Ihrer Diagramme zu verbessern.

Für weitere Untersuchungen können Sie auch andere Titel-Anpassungsoptionen wie Schriftarteigenschaften, Rotation und Farben ausprobieren, um Ihre Visualisierungen noch wirkungsvoller zu gestalten.