Hoe X-as Tick Label-tekst in Matplotlib te roteren

  1. plt.xticks(rotation= ) om Xticks labeltekst te roteren
  2. fig.autofmt_xdate(rotation= ) om Xticks labeltekst te roteren
  3. ax.set_xticklabels(xlabels, rotation= ) om Xticks labeltekst te roteren
  4. plt.setp(ax.get_xticklabels(), rotation=) om Xticks labeltekst te roteren
  5. ax.tick_params(axis='x', labelrotation= ) om Xticks labeltekst te roteren
  6. Geroteerd xticklabels uitlijnen

In dit tutorial artikel introduceren we verschillende methoden om X-as tick label tekst in Python-label te roteren. Het bevat,

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

De standaardori├źntatie van de tekst van maatlabels op de x-as is horizontaal of 0 graden. Het brengt ongemak met zich mee als de tekst van het vinkje te lang is, zoals overlappende tekst tussen aangrenzende tekst.

Matplotlib roteren x-as aankruisen label_no rotatie

De codes om het bovenstaande figuur te maken is,

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= ) om Xticks labeltekst te roteren

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 haalt of stelt de eigenschappen in van vinklocaties en labels van de x-as.

rotation is de rotatiehoek tegen de klok in van de x-as labeltekst.

Matplotlib roteren x-as tick label_xticks rotatie

fig.autofmt_xdate(rotation= ) om Xticks labeltekst te roteren

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 roteert de teeklabels en lijnt ze automatisch uit als het label een date object is.

Maar het werkt eigenlijk niet alleen met het date object, maar ook met de normale labeltekstreeks.

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 roteren x-as aankruisen label\_autofmt_xdate

ax.set_xticklabels(xlabels, rotation= ) om Xticks labeltekst te roteren

set_xticklabels stelt de x-tick labels in met een lijst met stringlabels.

Deze lijst met stringlabels kan een nieuw gespecificeerde lijst zijn of de bestaande labellijst van de huidige plot gelezen door get_xticklabels().

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 roteren x-as aankruisen label\_set_xticklabels

plt.setp(ax.get_xticklabels(), rotation=) om Xticks labeltekst te roteren

matplotlib.pyplot.setp stelt een eigenschap in op een kunstenaarobject.

plt.setp(ax.get_xticklabels(), rotation=) stelt de rotation eigenschap van xtick labels-object in.

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= ) om Xticks labeltekst te roteren

tick_params stelt de parameters van teken, tekenlabels en rasterlijnen in.

ax.tick_params(axis='x', labelrotation= ) stelt de labelrotation eigenschap van het teeklabel in de x as in, of met andere woorden, de X-as.

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()

Geroteerd xticklabels uitlijnen

We gebruiken stelling ha='right' in het bovenstaande voorbeeld codes, welke middelen h ORIZONTALE een lignment is right.

ha='right' lijnt het rechteruiteinde van de labeltekst uit op de maatstreepjes.

ha='left' lijnt het linkeruiteinde van de labeltekst uit op de maatstreepjes.

ha='center' lijnt het midden van de labeltekst uit op de maatstreepjes.

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 roteren x-as tick label_ha uitlijning

Gerelateerde Artikelen - Matplotlib Axes

  • Hoe tekenlabels lettergrootte in Matplotlib in te stellen
  • Gerelateerde Artikelen - Matplotlib Ticks

  • Hoe tekenlabels lettergrootte in Matplotlib in te stellen
  • Hoe tekenlabels lettergrootte in Matplotlib in te stellen