J'ai une figure matplotlib que je trace des données qui sont toujours appelées nanosecondes (1e-9). Sur l'axe des y, si j'ai des données qui sont des dizaines de nanosecondes, c'est à dire. 44e-9, la valeur sur l'axe indique 4,4 avec un + 1e-8 comme décalage. Est-il possible de forcer l'axe à afficher 44 avec un décalage de + 1e-9?
Il en va de même pour mon axe des x où l'axe montre + 5,54478e4, où je préférerais qu'il affiche un décalage de +55447 (nombre entier, pas de décimale - la valeur ici est en jours).
J'ai essayé quelques trucs comme ça:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
pour l'axe des x, mais cela ne fonctionne pas, bien que je l'utilise probablement de manière incorrecte ou que j'interprète mal quelque chose de la documentation, quelqu'un peut-il me diriger dans la bonne direction?
Merci, Jonathan
J'ai essayé de faire quelque chose avec les formateurs mais je n'ai pas encore trouvé de solution ...:
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
et
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
Sur une note latérale, je suis en fait confus quant à l'endroit où l'objet 'offset number' réside réellement ... fait-il partie des graduations majeures / mineures?
set_units
? matplotlib.sourceforge.net/api/… (Je ne peux pas l'essayer car je n'ai pas matplotlib ici.)