2011-09-14 22 views

risposta

38

Credo che questo vi punto nella giusta direzione:

http://matplotlib.sourceforge.net/examples/pylab_examples/barchart_demo.html.

La parte che si è più interessa è:

def autolabel(rects): 
    for rect in rects: 
     height = rect.get_height() 
     plt.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height), 
       ha='center', va='bottom') 

Il posizionamento del testo è determinata dalla funzione di altezza, o l'altezza della colonna e il numero che viene messo in cima ad ogni la colonna è scritta da: '% d'% int (altezza). Quindi tutto ciò che devi fare è creare una serie di stringhe, chiamate 'name', che vuoi nella parte superiore delle colonne e scorrere. Assicurati di cambiare il formato per una stringa (% s) e non una doppia.

def autolabel(rects): 
# attach some text labels 
    for ii,rect in enumerate(rects): 
     height = rect.get_height() 
     plt.text(rect.get_x()+rect.get_width()/2., 1.02*height, '%s'% (name[ii]), 
       ha='center', va='bottom') 
autolabel(rects1) 

Questo dovrebbe farlo!

+0

Ho cercato di capirlo ma voglio visualizzare una stringa, ed è qui che mi dà fastidio. L'ho incasinato, ma non posso modificarlo per adattarlo al mio caso. – GiannisIordanou

+0

Ho modificato la mia risposta originale per mostrarvi cosa cambiare. – cosmosis

+0

@cosmosis L'altezza '1.02 * non funziona se i valori y differiscono molto (ad es., Min 0 e max 1300). Eventuali suggerimenti? – tobip

Problemi correlati