web-dev-qa-db-fra.com

tracer avec un texte personnalisé pour les points de l'axe x

Je dessine une parcelle en utilisant matplotlib et python comme l'exemple de code ci-dessous.

x = array([0,1,2,3])
y = array([20,21,22,23])
plot(x,y)
show()

Comme c'est le code ci-dessus sur l'axe des x, je vais voir les valeurs dessinées 0.0, 0.5, 1.0, 1.5 c’est-à-dire les mêmes valeurs que mes valeurs de référence x.

Est-il possible de mapper chaque point de x sur une chaîne différente? Ainsi, par exemple, je veux que l’axe des x montre les noms des mois (chaînes Jun, July,...) ou d’autres chaînes comme les noms de personnes ("John", "Arnold", ...) ou l'heure ("12:20", "12:21", "12:22", ..).

Savez-vous ce que je peux faire ou quelle fonction regarder?
Pour moi, pourrait-il être matplotlib.ticker d'aide?

94
user311906

Vous pouvez définir manuellement xticks (et yticks) en utilisant pyplot.xticks :

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0,1,2,3])
y = np.array([20,21,22,23])
my_xticks = ['John','Arnold','Mavis','Matt']
plt.xticks(x, my_xticks)
plt.plot(x, y)
plt.show()

169
unutbu