2011-09-14 57 views

回答

38

我相信這將指向你在正確的方向:

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

,你最感興趣的部分是:

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') 

文本的位置由高度函數,或柱的高度,那就是把每個頂部的數量決定列的寫法是:'%d'%int(height)。所以你所要做的就是創建一個名爲'name'的字符串數組,並在列的頂部進行迭代。確保將格式更改爲字符串(%s)而不是雙精度型。

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) 

這應該這樣做!

+0

我試圖理解它,但我想顯示一個字符串,這是它困擾我的地方。我搞砸了,但我無法修改它以適應我的情況。 – GiannisIordanou

+0

我編輯了我的原始答案,告訴你要改變什麼。 – cosmosis

+0

@cosmosis如果y值有很大差異(例如,最小值0和最大值1300),則'1.02 * height'不起作用。有什麼建議麼? – tobip

相關問題