2010-07-18 18 views
7

He creado un gráfico de hexbin simple con matplotlib.pyplot. No he cambiado ninguna configuración predeterminada. La información de mi eje x varía de 2003 a 2009, mientras que los valores y van de 15 a 35. En lugar de escribir 2003, 2004, etc., matplotlib lo colapsa en 0, 1, 2, ... + 2.003e + 03 . ¿Hay alguna manera simple de forzar a matplotlib a escribir los números completos?¿Cómo obligo a matplotlib a escribir la forma completa de la etiqueta del eje x, evitando la notación científica?

Gracias,
Mark C.

Respuesta

8

creo que se puede utilizar el xticks function para fijar etiquetas de cadena:

nums = arange(2003, 2010) 
xticks(nums, (str(n) for n in nums)) 

EDIT: Esta es una mejor manera:

gca().xaxis.set_major_formatter(FormatStrFormatter('%d')) 

o algo así, de todos modos. (En versiones anteriores de Matplotlib el método se llamaba setMajorFormatter).

+0

no sé de qué versión, pero desde Matplotlib 1.0 setMajorFormatter es set_major_formatter. –

+0

@Bernardo: gracias, cambiaré eso. –

+2

O con espacios de nombres completos: matplotlib.pyplot.gca(). Yaxis.set_major_formatter (matplotlib.ticker.FormatStrFormatter ('% d')) – bsa

Cuestiones relacionadas