Data Visualization

Matplotlib: X-Achsen-Beschriftungsrotation meistern

Spread the love

Das Rotieren von x-Achsen-Beschriftungen in Matplotlib ist eine gängige Aufgabe, wenn es um lange Beschriftungen oder überlappende Texte geht. Dieser Artikel untersucht verschiedene Methoden, um klare und lesbare Visualisierungen zu erzielen und bietet Flexibilität für verschiedene Plot-Szenarien.

Inhaltsverzeichnis

Verwendung von plt.xticks()

Dies ist der einfachste Ansatz zum Rotieren von x-Achsen-Beschriftungen. Der Parameter rotation steuert direkt den Rotationswinkel.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Sehr lange Beschriftung ' + str(i) for i in x]

plt.plot(x, y)
plt.xticks(x, labels, rotation=45, ha='right')  # ha='right' richtet Beschriftungen rechts aus
plt.xlabel("X-Achse")
plt.ylabel("Y-Achse")
plt.title("Rotieren von X-Achsen-Beschriftungen")
plt.tight_layout()  # Verhindert überlappende Beschriftungen
plt.show()

Das Argument ha='right' ist entscheidend für die richtige Ausrichtung nach der Drehung. plt.tight_layout() hilft, überlappende Beschriftungen zu vermeiden und verbessert die allgemeine Lesbarkeit.

Verwendung von fig.autofmt_xdate()

Speziell für Datumsbeschriftungen entwickelt, passt fig.autofmt_xdate() die Drehung und Ausrichtung automatisch für optimale Lesbarkeit an.


import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime

dates = [datetime.date(2024, 1, i) for i in range(1, 11)]
values = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(dates, values)
fig.autofmt_xdate(rotation=45)
plt.show()

Diese Methode vereinfacht den Prozess bei der Arbeit mit Zeitreihendaten und übernimmt automatisch die Datumsformatierung und die Platzierung von Beschriftungen.

Verwendung von ax.set_xticklabels()

Diese Methode bietet mehr Kontrolle und ermöglicht es Ihnen, Beschriftungen vor der Drehung anzupassen.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Beschriftung ' + str(i) for i in x]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticklabels(labels, rotation=70)
plt.show()

Verwendung von plt.setp()

plt.setp() bietet eine prägnante Möglichkeit, vorhandene Eigenschaften von Tick-Beschriftungen zu ändern, einschließlich der Drehung.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
plt.setp(ax.get_xticklabels(), rotation=30)
plt.show()

Verwendung von ax.tick_params()

Für eine feinkörnige Steuerung verschiedener Tick-Eigenschaften, einschließlich der Drehung, ist ax.tick_params() die vielseitigste Option.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.tick_params(axis='x', labelrotation=60)
plt.show()

Optimierung der Beschriftungsausrichtung

Unabhängig von der gewählten Methode ist die richtige Ausrichtung entscheidend für die Lesbarkeit. Der Parameter ha (horizontale Ausrichtung) (‚left‘, ‚center‘, ‚right‘) in plt.xticks() oder ax.set_xticklabels() steuert die horizontale Positionierung. Experimentieren Sie, um die optimale Ausrichtung für Ihr Diagramm zu finden. Verwenden Sie immer plt.tight_layout(), um überlappende Beschriftungen zu vermeiden.

Durch die Beherrschung dieser Techniken können Sie klare und informative Matplotlib-Diagramme erstellen, selbst mit komplexen oder langen x-Achsen-Beschriftungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert