Que dois-je passer en tant que paramètre ticks de la fonction yticks? dans matplotlib, je ne sais pas si je dois passer des emplacements (indices en y arr) ou des valeurs pour les graduations y, la documentation le décrit comme:

Une liste des positions auxquelles les graduations doivent être placées

Pour ce programme:

import numpy as np
import matplotlib.pyplot as plt

x = [0,5,9,10,15]
y = ["a","ab","abc","ab","abcd"]

plt.plot(x,y)
plt.show()

Si j'ajoute plt.xticks([0, 2, 3]), j'obtiens des graduations avec des valeurs de: a, abc, abcd. Ce que je ne comprends pas, c'est pourquoi les ticks ne sont pas: a, abc, ab (emplacements dans le tableau y)? J'ai cependant remarqué que lorsque les valeurs en y sont distinctes, les emplacements fonctionnent comme prévu.

Mais quand je fais plt.xticks(['as', 'ab', 'acs']) j'obtiens des ticks comme prévu (comme ab acs).

Dois-je donc utiliser ce paramètre tick comme emplacements ou valeurs?

0
mikol 16 avril 2020 à 01:41

2 réponses

Meilleure réponse

Parce que quand y = ["a", "ab", "abc", "ab", "abcd"], alors les graduations sont en fait ["a", "ab", "abc", "abcd"]. Notez qu'il y avait deux "ab" avant, mais maintenant un seul "ab" .

Maintenant, quand vous dites plt.yticks ([0, 2, 3]), il choisit "a" (index 0), "abc" (index 2), "abcd" (index 3) from ["a", "ab "," abc "," abcd "]

0
plasmon360 15 avril 2020 à 22:57

Comme vous l'avez trouvé, s'il s'agit d'une liste de nombres, elle sera interprétée comme la position des graduations (pas d'index ou quoi que ce soit d'autre) et si c'est une liste de chaînes, elle sera interprétée comme le nom des graduations. Pour plus de détails, ici.

0
OmG 15 avril 2020 à 22:51