2012-08-07 11 views
22

Cuando intento hacer un diagrama en un rango con números suficientemente grandes obtengo un eje con desplazamiento relativo para todos los ticks. Por ejemplo:Cómo eliminar el desplazamiento relativo en el eje matplotlib

plot([1000, 1001, 1002], [1, 2, 3]) 

consigo estas garrapatas en el eje de abscisas:

0.0  0.5  1.0  1.5  2.0 
           +1e3 

La pregunta es cómo eliminar +1e3 y obtener simplemente:

1000.0 1000.5 1001.0 1001.5 1002.0 

Respuesta

25
plot([1000, 1001, 1002], [1, 2, 3]) 
gca().get_xaxis().get_major_formatter().set_useOffset(False) 
draw() 

Este coge el actual axes, obtiene el objeto x-axis axis y luego el objeto principal del formateador d establece useOffset en falso (doc).

En las versiones más nuevas (1.4+) de matplotlib el comportamiento predeterminado se puede cambiar a través del axes.formatter.useoffset rcparam.

+0

Gracias, funciona. –

2

Para desactivar el cambio relativo en todas partes, poner el parámetro rc:

import matplotlib 
matplotlib.rc('axes.formatter', useoffset=False) 
+1

Quizás deba agregar alguna explicación a su respuesta, por lo que no es solo un código. – khelwood

+0

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – bahrep

+0

Actualizado para agregar una explicación. – zbyszek

Cuestiones relacionadas