Comment faire pivoter le texte des étiquettes à cocher sur l'axe X dans Matplotlib

Jinku Hu 30 janvier 2023
  1. plt.xticks(rotation= ) pour faire pivoter le texte de l’étiquette Xticks
  2. fig.autofmt_xdate(rotation= ) pour faire pivoter le texte des étiquettes Xticks
  3. ax.set_xticklabels(xlabels, Rotation= ) pour faire pivoter le texte des étiquettes Xticks
  4. plt.setp(ax.get_xticklabels(), Rotation=) pour faire pivoter le texte des étiquettes Xticks
  5. ax.tick_params(axis='x', Labelrotation= ) pour faire pivoter le texte des étiquettes Xticks
  6. Rotation xticklabels alignant
Comment faire pivoter le texte des étiquettes à cocher sur l'axe X dans Matplotlib

Dans cet article du tutoriel, nous allons présenter différentes méthodes pour faire pivoter le texte des étiquettes à cocher sur l’axe X dans les étiquettes Python. Il comprend,

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

L’orientation par défaut du texte des étiquettes de coche dans l’axe des x est horizontale ou 0 degré. Cela apporte des inconvénients si le texte du label de la coche est trop long, comme le chevauchement entre des textes de label adjacents.

Matplotlib fait pivoter l’axe x tick label_no rotation

Les codes pour créer la figure ci-dessus sont,

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= ) pour faire pivoter le texte de l’étiquette Xticks

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 récupère ou définit les propriétés des emplacements des cocheurs et des étiquettes de l’axe des x.

rotation est l’angle de rotation dans le sens anti-horaire du texte du label de l’axe x.

Matplotlib fait tourner le texte des étiquettes sur l’axe x

fig.autofmt_xdate(rotation= ) pour faire pivoter le texte des étiquettes Xticks

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 fait tourner les étiquettes de tique et les aligne à droite automatiquement si l’étiquette est un objet date.

Mais cela ne fonctionne pas seulement avec l’objet date mais aussi avec la chaîne de texte normale du label.

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 fait pivoter le tic-tac de l’axe x label_autofmt_xdate

ax.set_xticklabels(xlabels, Rotation= ) pour faire pivoter le texte des étiquettes Xticks

set_xticklabels définit les étiquettes x-tick avec la liste des étiquettes de chaînes de caractères.

Cette liste d’étiquettes de chaînes de caractères peut être une liste nouvellement spécifiée ou la liste d’étiquettes existante du graphe courant lue par 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 fait pivoter l’axe des x en cochant label_set_xticklabels

plt.setp(ax.get_xticklabels(), Rotation=) pour faire pivoter le texte des étiquettes Xticks

matplotlib.pyplot.setp définit une propriété sur un objet d’artiste.

plt.setp(ax.get_xticklabels(), rotation=) définit la propriété rotation de l’objet xtick labels.

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= ) pour faire pivoter le texte des étiquettes Xticks

tick_params définit les paramètres des ticks, des étiquettes de tick et des lignes de grille.

ax.tick_params(axis='x', labelrotation= ) définit la propriété labelrotation de l’étiquette de la tique dans l’axe x, ou en d’autres termes, l’axe X.

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

Rotation xticklabels alignant

nous utilisons l’argument ha='right' dans les codes de l’exemple ci-dessus, ce qui signifie que horizontal alignment est right.

ha='right' aligne l’extrémité droite du texte de l’étiquette sur les tiques.

ha='left' aligne l’extrémité gauche du texte de l’étiquette sur les tiques.

ha='center' aligne le centre du texte du label sur les cases à cocher.

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 fait pivoter le tic-tac de l’axe des x l’alignement de label_ha

Auteur: 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

Article connexe - Matplotlib Axes

Article connexe - Matplotlib Ticks