Verschieben der Tick-Labels der x-Achse nach oben

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 Tutorial werden wir lernen, wie man die Tick-Labels (Markierungsbeschriftungen) der x-Achse mithilfe der Python-Bibliothek Matplotlib an die Oberseite des Diagramms verschiebt. Standardmäßig platziert Matplotlib die x-Achsenbeschriftungen am unteren Rand des Diagramms. Manchmal möchten wir sie jedoch aus Gründen einer besseren Visualisierung, insbesondere bei überfüllten Diagrammen oder langen Beschriftungen, die möglicherweise mit anderen Elementen überlappen, an der Oberseite platzieren.

Diese Technik ist besonders nützlich in Datenvisualisierungs-Szenarien, in denen Sie die Raumausnutzung optimieren und die Lesbarkeit Ihrer Diagramme verbessern müssen. Wir werden ein einfaches Diagramm erstellen und lernen, wie man die Position der Tick-Labels Schritt für Schritt manipuliert.

Tipps zur virtuellen Maschine (VM)

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 für die Übung zuzugreifen.

click-notebook

Sie müssen möglicherweise einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Aufgrund der Einschränkungen von Jupyter Notebook kann die Validierung der Operationen nicht automatisiert werden.

Wenn Sie während dieses Tutorials auf Probleme stoßen, können Sie sich gerne an Labby wenden. Bitte geben Sie uns nach der Sitzung Feedback, damit wir eventuelle Probleme umgehend beheben können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlotCustomizationGroup(["Plot Customization"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") matplotlib/BasicConceptsGroup -.-> matplotlib/saving_figures("Saving Figures to File") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") matplotlib/PlottingDataGroup -.-> matplotlib/fill_between("Fill Between Plots") matplotlib/PlotCustomizationGroup -.-> matplotlib/titles_labels("Adding Titles and Labels") matplotlib/PlotCustomizationGroup -.-> matplotlib/axis_ticks("Axis Ticks Customization") matplotlib/PlotCustomizationGroup -.-> matplotlib/text_annotations("Text Annotations") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/figures_axes -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/saving_figures -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/line_plots -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/fill_between -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/titles_labels -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/axis_ticks -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} matplotlib/text_annotations -.-> lab-48991{{"Verschieben der Tick-Labels der x-Achse nach oben"}} end

Grundlagen von Matplotlib und Erstellung eines Notebooks

In diesem ersten Schritt werden wir uns mit Matplotlib vertraut machen und ein neues Jupyter-Notebook für unsere Visualisierungsaufgabe erstellen.

Was ist Matplotlib?

Matplotlib ist eine umfassende Bibliothek zur Erstellung von statischen, animierten und interaktiven Visualisierungen in Python. Sie bietet eine objektorientierte API (Anwendungs-Programmierschnittstelle) zum Einbetten von Diagrammen in Anwendungen und wird von Wissenschaftlern, Ingenieuren und Datenanalysten häufig für die Datenvisualisierung eingesetzt.

Erstellen eines neuen Notebooks

Lassen Sie uns in der ersten Zelle Ihres Notebooks die Matplotlib-Bibliothek importieren. Geben Sie den folgenden Code ein und führen Sie die Zelle aus, indem Sie Shift+Enter drücken:

import matplotlib.pyplot as plt
import numpy as np

## Check the Matplotlib version
print(f"NumPy version: {np.__version__}")
libraries-imported

Wenn Sie diesen Code ausführen, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

NumPy version: 2.0.0

Die genaue Versionsnummer kann je nach Ihrer Umgebung variieren.

Jetzt haben wir Matplotlib importiert und können es verwenden. plt ist ein üblicher Alias für das pyplot-Modul, das eine MATLAB-ähnliche Schnittstelle zur Erstellung von Diagrammen bietet.

Erstellen eines einfachen Diagramms mit Standard-Einstellungen

Nachdem wir Matplotlib importiert haben, erstellen wir nun ein einfaches Diagramm mit Standard-Einstellungen, um zu verstehen, wie die Achsen und Tick-Labels (Markierungsbeschriftungen) standardmäßig positioniert werden.

Grundlagen der Matplotlib-Komponenten

In Matplotlib besteht ein Diagramm aus mehreren Komponenten:

  • Figure (Figur): Der Gesamt-Container für das Diagramm
  • Axes (Achsenbereich): Der Bereich, in dem die Daten mit eigenem Koordinatensystem dargestellt werden
  • Axis (Achse): Die linienähnlichen Objekte, die das Koordinatensystem definieren
  • Ticks (Markierungen): Die Markierungen auf den Achsen, die bestimmte Werte markieren
  • Tick Labels (Markierungsbeschriftungen): Die Textbeschriftungen, die den Wert jeder Markierung angeben

Standardmäßig erscheinen die Tick-Labels der x-Achse am unteren Rand des Diagramms.

Erstellen eines einfachen Diagramms

In einer neuen Zelle Ihres Notebooks erstellen wir ein einfaches Linien-Diagramm:

## Create a figure and a set of axes
fig, ax = plt.subplots(figsize=(8, 5))

## Generate some data
x = np.arange(0, 10, 1)
y = np.sin(x)

## Plot the data
ax.plot(x, y, marker='o', linestyle='-', color='blue', label='sin(x)')

## Add a title and labels
ax.set_title('A Simple Sine Wave Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis (sin(x))')

## Add a grid and legend
ax.grid(True, linestyle='--', alpha=0.7)
ax.legend()

## Display the plot
plt.show()

print("Notice that the x-axis tick labels are at the bottom of the plot by default.")

Wenn Sie diesen Code ausführen, sehen Sie ein Sinuswellen-Diagramm, bei dem die Tick-Labels der x-Achse am unteren Rand des Diagramms positioniert sind, was die Standard-Position in Matplotlib ist.

Nehmen Sie sich einen Moment Zeit, um zu beobachten, wie das Diagramm strukturiert ist und wo die Tick-Labels positioniert sind. Dieses Verständnis wird uns helfen, die Änderungen, die wir im nächsten Schritt vornehmen, besser zu verstehen.

Verschieben der Tick-Labels der x-Achse nach oben

Nachdem wir die Standard-Positionierung der Tick-Labels verstanden haben, verschieben wir nun die Tick-Labels der x-Achse nach oben im Diagramm.

Grundlagen der Tick-Parameter

Matplotlib bietet die Methode tick_params(), um das Erscheinungsbild von Tick-Markierungen und Tick-Labels zu steuern. Mit dieser Methode können wir:

  • Tick-Markierungen und Tick-Labels anzeigen/ausblenden
  • Ihre Position ändern (oben, unten, links, rechts)
  • Ihre Größe, Farbe und andere Eigenschaften anpassen

Erstellen eines Diagramms mit Tick-Labels der x-Achse oben

Erstellen wir ein neues Diagramm, bei dem die Tick-Labels der x-Achse nach oben verschoben sind:

## Create a new figure and a set of axes
fig, ax = plt.subplots(figsize=(8, 5))

## Generate some data
x = np.arange(0, 10, 1)
y = np.cos(x)

## Plot the data
ax.plot(x, y, marker='s', linestyle='-', color='green', label='cos(x)')

## Move the x-axis tick labels to the top
ax.tick_params(
    axis='x',         ## Apply changes to the x-axis
    top=True,         ## Show ticks on the top side
    labeltop=True,    ## Show tick labels on the top side
    bottom=False,     ## Hide ticks on the bottom side
    labelbottom=False ## Hide tick labels on the bottom side
)

## Add a title and labels
ax.set_title('Cosine Wave with X-Axis Tick Labels at the Top')
ax.set_xlabel('X-axis (now at the top!)')
ax.set_ylabel('Y-axis (cos(x))')

## Add a grid and legend
ax.grid(True, linestyle='--', alpha=0.7)
ax.legend()

## Display the plot
plt.show()

print("Now the x-axis tick labels are at the top of the plot!")

Wenn Sie diesen Code ausführen, sehen Sie ein Kosinuswellen-Diagramm, bei dem die Tick-Labels der x-Achse oben im Diagramm positioniert sind.

Beachten Sie, wie die Methode tick_params() mit mehreren Parametern verwendet wird:

  • axis='x': Gibt an, dass wir die x-Achse ändern möchten
  • top=True und labeltop=True: Macht Tick-Markierungen und -Labels oben sichtbar
  • bottom=False und labelbottom=False: Blendet Tick-Markierungen und -Labels unten aus

Dadurch erhalten wir eine klare Ansicht der Daten, bei der die x-Achsen-Labels oben statt unten positioniert sind.

Weitere Anpassung des Diagramms

Nachdem wir die Tick-Labels der x-Achse nach oben verschoben haben, passen wir unser Diagramm nun weiter an, um es visuell ansprechender und informativer zu gestalten.

Fortgeschrittene Techniken zur Diagrammanpassung

Matplotlib bietet zahlreiche Optionen zur Anpassung von Diagrammen. Betrachten wir einige dieser Optionen:

## Create a new figure and a set of axes
fig, ax = plt.subplots(figsize=(10, 6))

## Generate some data with more points for a smoother curve
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

## Plot multiple datasets
ax.plot(x, y1, linewidth=2, color='blue', label='sin(x)')
ax.plot(x, y2, linewidth=2, color='red', label='cos(x)')

## Fill the area between curves
ax.fill_between(x, y1, y2, where=(y1 > y2), alpha=0.3, color='green', interpolate=True)
ax.fill_between(x, y1, y2, where=(y1 <= y2), alpha=0.3, color='purple', interpolate=True)

## Move the x-axis tick labels to the top
ax.tick_params(
    axis='x',
    top=True,
    labeltop=True,
    bottom=False,
    labelbottom=False
)

## Customize tick labels
ax.set_xticks(np.arange(0, 2*np.pi + 0.1, np.pi/2))
ax.set_xticklabels(['0', 'π/2', 'π', '3π/2', '2π'])

## Add title and labels with custom styles
ax.set_title('Sine and Cosine Functions with Customized X-Axis Labels at the Top',
             fontsize=14, fontweight='bold', pad=20)
ax.set_xlabel('Angle (radians)', fontsize=12)
ax.set_ylabel('Function Value', fontsize=12)

## Add a grid and customize its appearance
ax.grid(True, linestyle='--', alpha=0.7, which='both')

## Customize the axis limits
ax.set_ylim(-1.2, 1.2)

## Add a legend with custom location and style
ax.legend(loc='upper right', fontsize=12, framealpha=0.8)

## Add annotations to highlight important points
ax.annotate('Maximum', xy=(np.pi/2, 1), xytext=(np.pi/2, 1.1),
            arrowprops=dict(facecolor='black', shrink=0.05, width=1.5),
            fontsize=10, ha='center')

## Display the plot
plt.tight_layout()  ## Adjust spacing for better appearance
plt.show()

print("We have created a fully customized plot with x-axis tick labels at the top!")

Wenn Sie diesen Code ausführen, sehen Sie ein viel aufwändigeres und professioneller aussehendes Diagramm mit:

  • Zwei Kurven (Sinus und Kosinus)
  • Farbigen Bereichen zwischen den Kurven
  • Angepassten Tick-Labels (mit π-Notation)
  • Anmerkungen, die wichtige Merkmale markieren
  • Besseren Abständen und Stilen

Beachten Sie, wie wir die Tick-Labels der x-Achse mit der Methode tick_params() oben belassen haben, aber das Diagramm mit zusätzlichen Anpassungen verbessert haben.

Verständnis der Anpassungen

Lassen Sie uns einige der wichtigen Anpassungen, die wir vorgenommen haben, analysieren:

  1. fill_between(): Erstellt farbige Bereiche zwischen den Sinus- und Kosinus-Kurven
  2. set_xticks() und set_xticklabels(): Passt die Positionen und Beschriftungen der Tick-Markierungen an
  3. tight_layout(): Passt die Abstände im Diagramm automatisch für ein besseres Erscheinungsbild an
  4. annotate(): Fügt Text mit einem Pfeil hinzu, der auf einen bestimmten Punkt zeigt
  5. Angepasste Schriftarten, Farben und Stile für verschiedene Elemente

Diese Anpassungen zeigen, wie Sie visuell ansprechende und informativer Diagramme erstellen können, während Sie die Tick-Labels der x-Achse oben belassen.

Speichern und Teilen Ihres Diagramms

Der letzte Schritt besteht darin, Ihr angepasstes Diagramm zu speichern, damit Sie es in Berichten, Präsentationen einbinden oder es mit anderen teilen können.

Speichern von Diagrammen in verschiedenen Formaten

Matplotlib ermöglicht es Ihnen, Diagramme in verschiedenen Formaten zu speichern, darunter PNG, JPG, PDF, SVG und viele mehr. Lassen Sie uns lernen, wie wir unser Diagramm in verschiedenen Formaten speichern können:

## Create a plot similar to our previous customized one
fig, ax = plt.subplots(figsize=(10, 6))

## Generate data
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

## Plot the data
ax.plot(x, y1, linewidth=2, color='blue', label='sin(x)')
ax.plot(x, y2, linewidth=2, color='red', label='cos(x)')

## Move the x-axis tick labels to the top
ax.tick_params(
    axis='x',
    top=True,
    labeltop=True,
    bottom=False,
    labelbottom=False
)

## Customize tick labels
ax.set_xticks(np.arange(0, 2*np.pi + 0.1, np.pi/2))
ax.set_xticklabels(['0', 'π/2', 'π', '3π/2', '2π'])

## Add title and labels
ax.set_title('Plot with X-Axis Labels at the Top', fontsize=14)
ax.set_xlabel('X-axis at the top')
ax.set_ylabel('Y-axis')

## Add grid and legend
ax.grid(True)
ax.legend()

## Save the figure in different formats
plt.savefig('plot_with_top_xlabels.png', dpi=300, bbox_inches='tight')
plt.savefig('plot_with_top_xlabels.pdf', bbox_inches='tight')
plt.savefig('plot_with_top_xlabels.svg', bbox_inches='tight')

## Show the plot
plt.show()

print("The plot has been saved in PNG, PDF, and SVG formats in the current directory.")

Wenn Sie diesen Code ausführen, wird das Diagramm in drei verschiedenen Formaten gespeichert:

  • PNG: Ein Rasterbildformat, das gut für das Web und die allgemeine Verwendung geeignet ist
  • PDF: Ein Vektorgrafikformat, das ideal für Publikationen und Berichte ist
  • SVG: Ein Vektorgrafikformat, das hervorragend für das Web und bearbeitbare Grafiken geeignet ist

Die Dateien werden im aktuellen Arbeitsverzeichnis Ihres Jupyter-Notebooks gespeichert.

Verständnis der Speicherparameter

Lassen Sie uns die Parameter untersuchen, die mit savefig() verwendet werden:

  • dpi=300: Legt die Auflösung (Punkte pro Zoll) für Rasterformate wie PNG fest
  • bbox_inches='tight': Passt automatisch die Diagrammgrenzen an, um alle Elemente ohne unnötigen Leerraum einzuschließen

Anzeigen der gespeicherten Dateien

Sie können die gespeicherten Dateien anzeigen, indem Sie im Jupyter-Dateibrowser navigieren:

  1. Klicken Sie auf das "Jupyter"-Logo oben links.
  2. Im Dateibrowser sollten Sie die gespeicherten Bilddateien sehen.
  3. Klicken Sie auf eine beliebige Datei, um sie anzuzeigen oder herunterzuladen.

Zusätzliche Optionen zum Exportieren von Diagrammen

Für eine bessere Kontrolle über das gespeicherte Diagramm können Sie die Diagrammgröße anpassen, den Hintergrund einstellen oder die DPI (Auflösung) nach Ihren Bedürfnissen ändern:

## Control the background color and transparency
fig.patch.set_facecolor('white')  ## Set figure background color
fig.patch.set_alpha(0.8)          ## Set background transparency

## Save with custom settings
plt.savefig('custom_background_plot.png',
            dpi=400,              ## Higher resolution
            facecolor=fig.get_facecolor(),  ## Use the figure's background color
            edgecolor='none',     ## No edge color
            bbox_inches='tight',  ## Tight layout
            pad_inches=0.1)       ## Add a small padding

print("A customized plot has been saved with specialized export settings.")

Dies zeigt, wie Sie Diagramme mit präziser Kontrolle über das Ausgabeformat und das Erscheinungsbild speichern können.

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie man die Tick-Labels der x-Achse mit Matplotlib von ihrer Standardposition unten nach oben im Diagramm verschiebt. Diese Technik kann nützlich sein, wenn man mit Diagrammen arbeitet, die lange Beschriftungen haben oder wenn man die Platzausnutzung optimieren muss.

Wir haben die folgenden Schlüsselpunkte behandelt:

  1. Grundlagen von Matplotlib und seiner Komponenten wie Figuren, Achsen und Tick-Labels verstehen
  2. Einfache Diagramme mit Standard-Einstellungen erstellen, um die Standardplatzierung der Tick-Labels der x-Achse zu beobachten
  3. Die Methode tick_params() verwenden, um die Tick-Labels der x-Achse nach oben im Diagramm zu verschieben
  4. Das Diagramm mit zusätzlichen Anpassungen verbessern, um es informativer und visuell ansprechender zu gestalten
  5. Diagramme in verschiedenen Formaten speichern, um sie zu teilen und zu veröffentlichen

Mit diesen Kenntnissen können Sie lesbarere und professionellere Visualisierungen erstellen, insbesondere wenn Sie mit komplexen Datensätzen arbeiten oder wenn die Diagramme bestimmte Layoutanforderungen haben.

Um Ihr Lernen fortzusetzen, können Sie sich andere Anpassungsoptionen von Matplotlib ansehen, wie beispielsweise:

  • Erstellen von Subdiagrammen mit verschiedenen Positionen der Tick-Labels
  • Anpassen des Erscheinungsbilds von Tick-Markierungen und Tick-Labels (Farbe, Schriftart, Größe usw.)
  • Arbeiten mit verschiedenen Diagrammtypen wie Balkendiagrammen, Streudiagrammen oder Histogrammen mit benutzerdefinierten Tick-Positionen

Die Flexibilität von Matplotlib ermöglicht umfangreiche Anpassungen, um Ihren spezifischen Visualisierungsbedürfnissen gerecht zu werden.