Tengo una figura de matplotlib que estoy trazando datos que siempre se conocen como nanosegundos (1e-9). En el eje y, si tengo datos que son decenas de nanosegundos, es decir. 44e-9, el valor en el eje se muestra como 4.4 con un + 1e-8 como compensación. ¿Hay alguna forma de forzar que el eje muestre 44 con un desplazamiento + 1e-9?
Lo mismo ocurre con mi eje x donde el eje muestra + 5.54478e4, donde preferiría que mostrara un desplazamiento de +55447 (número entero, sin decimal; el valor aquí está en días).
He intentado un par de cosas como esta:
p = axes.plot(x,y)
p.ticklabel_format(style='plain')
para el eje x, pero esto no funciona, aunque probablemente lo esté usando incorrectamente o malinterpretando algo de los documentos, ¿alguien puede señalarme en la dirección correcta?
Gracias Jonathan
Intenté hacer algo con formateadores pero aún no he encontrado ninguna solución ...:
myyfmt = ScalarFormatter(useOffset=True)
myyfmt._set_offset(1e9)
axes.get_yaxis().set_major_formatter(myyfmt)
y
myxfmt = ScalarFormatter(useOffset=True)
myxfmt.set_portlimits((-9,5))
axes.get_xaxis().set_major_formatter(myxfmt)
En una nota al margen, estoy realmente confundido en cuanto a dónde reside realmente el objeto 'número de compensación' ... ¿es parte de los ticks mayores / menores?
set_units
? matplotlib.sourceforge.net/api/… (No puedo probarlo porque no tengo matplotlib aquí.)