27
我有一個條形圖,我想在每列顯示一些文字,我該怎麼做?如何在matplotlib中的條形圖中的列上顯示文本?
我有一個條形圖,我想在每列顯示一些文字,我該怎麼做?如何在matplotlib中的條形圖中的列上顯示文本?
我相信這將指向你在正確的方向:
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)
這應該這樣做!
我試圖理解它,但我想顯示一個字符串,這是它困擾我的地方。我搞砸了,但我無法修改它以適應我的情況。 – GiannisIordanou
我編輯了我的原始答案,告訴你要改變什麼。 – cosmosis
@cosmosis如果y值有很大差異(例如,最小值0和最大值1300),則'1.02 * height'不起作用。有什麼建議麼? – tobip