HOWTO · Matplotlib
X-Achse drehen Beschriftungstext in der Matplotlib ankreuzen
Dieses Tutorial führt ein, wie man x-Achsen xtickslabel-Text in Matplotlib dreht.
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.
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.
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()
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()
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()