web-dev-qa-db-fra.com

Python matplotlib - définition de l'échelle de l'axe des x

J'ai ce graphique affichant les éléments suivants:

plt.plot(valueX, scoreList)
plt.xlabel("Score number") # Text for X-Axis
plt.ylabel("Score") # Text for Y-Axis
plt.title("Scores for the topic "+progressDisplay.topicName)
plt.show()

valueX = [1, 2, 3, 4] et scoreList = [5, 0, 0, 2]

Je veux que l'échelle monte en 1, quelles que soient les valeurs de 'scoreList'. Actuellement, mon axe x monte en 0,5 au lieu de 1.

Comment le régler pour qu'il ne monte qu'en 1?

5
YusufChowdhury

Réglez simplement les xticks vous-même.

plt.xticks([1,2,3,4])

ou

plt.xticks(valueX)

Étant donné que les fonctions de plage fonctionnent avec des entiers, vous pouvez utiliser cela à la place:

plt.xticks(range(1, 5))

Ou soyez encore plus dynamique et calculez-le à partir des données:

plt.xticks(range(min(valueX), max(valueX)+1))
11
Novel

Hé, il semble que vous devez définir l'échelle de l'axe des x.

Essayer

plt.axes.Axes.set_xscale(1, 'linear')

Voici la documentation de cette fonction

3
dustyjuicebox