empêcher la notation scientifique dans matplotlib.pyplot [dupliquer]

Cette question a déjà une réponse ici:

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()

parcelle

Merci d'avance.

25
demandé sur Jakob 2015-02-06 20:44:23

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()

entrez la description de l'image ici

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).

entrez la description de l'image ici

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:

entrez la description de l'image ici

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:

entrez la description de l'image ici

Enfin, nous pouvons désactiver les deux à travers:

ax.ticklabel_format(useOffset=False, style='plain')

entrez la description de l'image ici

54
répondu Joe Kington 2015-02-06 21:56:25