empêcher la notation scientifique dans matplotlib.pyplot [dupliquer]
Cette question a déjà une réponse ici:
- ticklabel_format est-il cassé? 1 réponse
J'essaie de supprimer la notation scientifique dans pyplot depuis quelques heures maintenant. Après avoir essayé plusieurs solutions sans succès, je voudrais de l'aide.
plt.plot(range(2003,2012,1),range(200300,201200,100))
# several solutions from other questions have not worked, including
# plt.ticklabel_format(style='sci', axis='x', scilimits=(-1000000,1000000))
# ax.get_xaxis().get_major_formatter().set_useOffset(False)
plt.show()
Merci d'avance.
1 réponses
Dans votre cas, vous voulez réellement désactiver le décalage. L'utilisation de la notation scientifique est un paramètre distinct de l'affichage des choses en termes de valeur de décalage.
Cependant, {[5] } aurait dû fonctionner (bien que vous l'ayez répertorié comme l'une des choses qui ne l'ont pas fait).
Par exemple:
fig, ax = plt.subplots()
ax.plot(range(2003,2012,1),range(200300,201200,100))
ax.ticklabel_format(useOffset=False)
plt.show()
Si vous voulez désactiver à la fois le décalage et la note scientifique, vous utiliserez ax.ticklabel_format(useOffset=False, style='plain')
.
Différence entre "offset" et "scientifique la notation
Dans la mise en forme de l'axe matplotlib, la "notation scientifique" fait référence à un multiplicateur pour l'affichage des nombres, tandis que le "décalage" est un terme DISTINCT qui est Ajouté.
, Considérons cet exemple:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(1000, 1001, 100)
y = np.linspace(1e-9, 1e9, 100)
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
L'axe des x aura un décalage (notez le signe +
) et l'axe des y utilisera la notation scientifique (comme un multiplicateur-pas de signe plus).
Nous pouvons désactiver l'un ou l'autre séparément. Le moyen le plus pratique est le ax.ticklabel_format
méthode (ou plt.ticklabel_format
).
Par exemple, si nous appelons:
ax.ticklabel_format(style='plain')
, Nous allons désactiver la notation scientifique sur l'axe des y:
Et si nous appelons
ax.ticklabel_format(useOffset=False)
Nous allons désactiver le décalage sur l'axe des x, mais laisser la notation scientifique de l'axe des y intacte:
Enfin, nous pouvons désactiver les deux à travers:
ax.ticklabel_format(useOffset=False, style='plain')