Différents précision sur matplotlib axe
Mon professeur a dit que, dans un graphe, je dois l'étiquette de l'axe comme 0, 0.25, 0.5
pas 0.00,0.25,0.50,...
.
Je sais comment étiqueter comme 0.00,0.25,0.50
(plt.yticks(np.arange(-1.5,1.5,.25))
), cependant, je ne sais pas comment tracer la ticklabels avec différents précision.
J'ai essayé de faire comme
plt.yticks(np.arange(-2,2,1))
plt.yticks(np.arange(-2.25,2.25,1))
plt.yticks(np.arange(-1.5,2.5,1))
sans succès.
- Oui, je sais qu'il est mauvais, mais il est celui qui corrige, j'ai donc doit se conformer à ses règles, même ils ne sont pas correctes
- il n'y a rien d'incorrect à propos de ce que le professeur a demandé.
Vous devez vous connecter pour publier un commentaire.
Cela a déjà été répondu, par exemple ici Matplotlib: Spécifier le format des flotteurs pour les tiques etiquettes. Mais vous voulez vraiment avoir un autre format que celui référencé dans la question.
Donc ce code vous donne votre souhaite de précision sur l'axe des y
Vous pouvez définir vos souhaité de précision dans la Chaîne que vous transmettez à FormatStrFormatter. Dans le cas ci-dessus, il est "%g", qui signifie pour le grand format. Ce format supprime insignifiant zéros à droite. Vous pouvez également passer d'autres formats, comme "%.1f", ce qui serait une précision d'une décimale, alors que "l'%.3f" serait une précision de trois chiffres après la virgule. Ces formats sont expliqués en détail ici.
ax
dans votre code est un tableau numpy, afin de ne pas avoir unyaxis
.Afin de définir les tiques " positions multiples de 0,25 vous pouvez utiliser un
matplotlib.ticker.MultipleLocator(0.25)
. Vous pouvez ensuite le format de la ticklabels à l'aide d'unFuncFormatter
avec une fonction qui supprime les zéros de la droite des nombres.