2010-02-01 23 views
15

Sto provando a creare grafici a barre di frequenza delle lettere in Python. Ho pensato che il modo migliore per farlo sarebbe matplotlib, ma non sono stato in grado di decifrare la documentazione. È possibile etichettare le barre di un grafico matplotlib.pyplot.hist con una lettera per barra invece di un asse numerico? Penso che debba essere, ma non ho mai usato Matplotlib.Bar etichettati individualmente per grafici a barre in matplotlib/Python

Questo è il tipo di grafico che sto cercando, reso come testo:

| 
| * 
| * * 
| * * * 
+---------- 
    A B C 

risposta

34

Certo è! Hai solo bisogno di ripristinare le etichette di graduazione.

EDIT con la risposta e l'immagine (può essere fatto in modo simile con hist):

x = scipy.arange(4) 
y = scipy.array([4,7,6,5]) 
f = pylab.figure() 
ax = f.add_axes([0.1, 0.1, 0.8, 0.8]) 
ax.bar(x, y, align='center') 
ax.set_xticks(x) 
ax.set_xticklabels(['Aye', 'Bee', 'Cee', 'Dee']) 
f.show() 

alt text http://up.stevetjoa.com/bar_xticklabels.png

+5

Non è necessario utilizzare SciPy per questo tra l'altro, è possibile sostituire le prime due righe con 'x = xrange (4)' e 'y = [4,7,6,5]'. – m01

+1

Grazie per 'align = 'center'', ho appena trascorso un'ora a googling su come farlo! – dotancohen

Problemi correlati