X-Achse drehen Beschriftungstext in der Matplotlib ankreuzen

Jinku Hu 30 Januar 2023
  1. plt.xticks(rotation= ) zum Drehen von Xticks Beschriftungstext
  2. fig.autofmt_xdate(rotation= ) zum Drehen von Xticks Beschriftungstext
  3. ax.set_xticklabels(xlabels, Rotation= ) zum Drehen von Xticks Etikettentext
  4. plt.setp(ax.get_xticklabels(), Rotation=) zum Drehen von Xticks Etikettentext
  5. ax.tick_params(axis='x', Labelrotation= ) zum Drehen von Xticks Etikettentext
  6. Rotierte xticklabels ausrichten
X-Achse drehen Beschriftungstext in der Matplotlib ankreuzen

In diesem Tutorial-Artikel werden wir verschiedene Methoden vorstellen, um X-Achsen-Tick-Labeltext in Python-Label zu drehen. Es beinhaltet,

  • plt.xticks(rotation= )
  • fig.autofmt_xdate(rotation= )
  • ax.set_xticklabels(xlabels, rotation= )
  • plt.setp(ax.get_xticklabels(), rotation=)
  • ax.tick_params(axis='x', labelrotation= )

Die Standardausrichtung des Textes von Tickbeschriftungen in der x-Achse ist horizontal oder 0 Grad. Es bringt Unannehmlichkeiten, wenn der Text der Ticketetiketten zu lang ist, wie z. B. Überlappungen zwischen benachbarten Etikettentexten.

Matplotlib rotieren x-Achse tick label_no rotation

Die Codes zur Erstellung der obigen Abbildung ist,

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]

fig, ax = plt.subplots()
plt.plot(dates, values)
plt.grid(True)

plt.show()

plt.xticks(rotation= ) zum Drehen von Xticks Beschriftungstext

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]

fig, ax = plt.subplots()
plt.plot(dates, values)
plt.xticks(rotation=45)
plt.grid(True)

plt.show()
plt.xticks(rotation=45)

plt.xticks holt oder setzt die Eigenschaften von Tickpositionen und Beschriftungen der x-Achse.

rotation ist der Drehwinkel der Beschriftung der x-Achse gegen den Uhrzeigersinn.

Matplotlib rotieren x-Achse tick label_xticks Rotation

fig.autofmt_xdate(rotation= ) zum Drehen von Xticks Beschriftungstext

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]

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

plt.show()

autofmt_xdate dreht die Tickbeschriftungen und richtet sie automatisch rechtsbündig aus, wenn die Beschriftung ein date Objekt ist.

Aber es funktioniert eigentlich nicht nur mit dem date Objekt, sondern auch mit dem normalen Labeltext.

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]
xlabels = [
    "Zero",
    "One",
    "Two",
    "Three",
    "Four",
    "Five",
    "Six",
    "Seven",
    "Eight",
    "Nine",
]

fig, ax = plt.subplots()
plt.plot(dates, values)
ax.set_xticklabels(xlabels)
fig.autofmt_xdate(rotation=45)
plt.grid(True)

plt.show()

Matplotlib x-Achse rotieren tick label_autofmt_xdate

ax.set_xticklabels(xlabels, Rotation= ) zum Drehen von Xticks Etikettentext

set_xticklabels setzt die x-tick labels mit einer Liste von String labels.

Diese Liste von Zeichenketten-Labels könnte eine neu spezifizierte Liste sein oder die bestehende Label-Liste des aktuellen Plots, die von get_xticklabels() gelesen wird.

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]
xlabels = [
    datetime.strftime(datetime.now() - timedelta(days=_), "%m/%d/%Y") for _ in range(10)
]

fig, ax = plt.subplots()
plt.plot(dates, values)
ax.set_xticklabels(xlabels, rotation=45, ha="right")
plt.grid(True)

plt.show()

Matplotlib rotieren x-Achse tick label_set_xticklabels

plt.setp(ax.get_xticklabels(), Rotation=) zum Drehen von Xticks Etikettentext

matplotlib.pyplot.setp setzt eine Eigenschaft auf ein Künstlerobjekt.

plt.setp(ax.get_xticklabels(), rotation=) setzt die rotation Eigenschaft des xtick labels Objektes.

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]
xlabels = [
    datetime.strftime(datetime.now() - timedelta(days=_), "%m/%d/%Y") for _ in range(10)
]

fig, ax = plt.subplots()
plt.plot(dates, values)
plt.setp(ax.get_xticklabels(), rotation=45, ha="right")
plt.grid(True)

plt.tight_layout()

plt.show()

ax.tick_params(axis='x', Labelrotation= ) zum Drehen von Xticks Etikettentext

tick_params setzt die Parameter von Ticks, Tickbeschriftungen und Gitterlinien.

ax.tick_params(axis='x', labelrotation= ) setzt die Eigenschaft labelrotation der Tickbeschriftung in der x Achse, oder anders gesagt, der X-Achse.

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

values = range(10)
dates = [datetime.now() - timedelta(days=_) for _ in range(10)]
xlabels = [
    datetime.strftime(datetime.now() - timedelta(days=_), "%m/%d/%Y") for _ in range(10)
]

fig, ax = plt.subplots()
plt.plot(dates, values)

ax.tick_params(axis="x", labelrotation=45)
plt.grid(True)

plt.show()

Rotierte xticklabels ausrichten

verwenden wir das Argument ha='right' in den obigen Beispielcodes, was bedeutet, dass horizontale ausrichtung right ist.

ha='right' richtet das rechte Ende des Labeltextes an den Ticks aus.

ha='left' richtet das linke Ende des Labeltextes an den Ticks aus.

ha='center' richtet die Mitte des Labeltextes an den Ticks aus.

from matplotlib import pyplot as plt
from datetime import datetime, timedelta

xvalues = range(5)
yvalues = xvalues
xlabels = [
    datetime.strftime(datetime.now() - timedelta(days=_), "%m/%d/%Y") for _ in xvalues
]

alignment = ["right", "left", "center"]
fig, axes = plt.subplots(1, 3)


for n, ax in enumerate(axes):
    ax.plot(xvalues, yvalues)
    ax.set_title(alignment[n] + "alignment")
    ax.set_xticks(xvalues)
    ax.set_xticklabels(xlabels, rotation=45, ha=alignment[n])
    ax.grid(True)

plt.show()

Matplotlib rotieren x-Achse Tick label_ha Ausrichtung

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - Matplotlib Axes

Verwandter Artikel - Matplotlib Ticks