如何在matplotlib的条形图中的列上显示文本?

Gia*_*nou 27 python matplotlib bar-chart

我有一个条形图,我希望每列显示一些文字,我该怎么做?

cos*_*sis 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')
Run Code Online (Sandbox Code Playgroud)

文本的位置由高度函数或列的高度决定,每列顶部的数字由下式写:'%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)
Run Code Online (Sandbox Code Playgroud)

应该这样做!