2010-07-18 9 views
7

Ho creato un semplice grafico esadecimale con matplotlib.pyplot. Non ho cambiato nessuna impostazione predefinita. Le mie informazioni sull'asse x vanno dal 2003 al 2009, mentre i valori y vanno da 15 a 35. Invece di scrivere 2003, 2004, ecc., Matplotlib lo collassa in 0, 1, 2, ... + 2.003e + 03 . C'è un modo semplice per forzare matplotlib a scrivere i numeri completi?Come faccio a forzare matplotlib per scrivere la forma completa dell'etichetta dell'asse x, evitando la notazione scientifica?

Grazie,
Mark C.

risposta

8

penso che è possibile utilizzare il xticks function per impostare le etichette stringa:

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

EDIT: Questo è un modo migliore:

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

o qualcosa del genere, comunque. (Nelle versioni precedenti di Matplotlib il metodo è stato chiamato setMajorFormatter.)

+0

non si sa da quale versione, ma dal momento che Matplotlib 1.0 setMajorFormatter è set_major_formatter. –

+0

@Bernardo: grazie, lo cambierò. –

+2

O con spazi dei nomi completi: matplotlib.pyplot.gca(). Yaxis.set_major_formatter (matplotlib.ticker.FormatStrFormatter ('% d')) – bsa

Problemi correlati