Как я могу отображать текст над столбцами в гистограмме в matplotlib? - PullRequest
27 голосов
/ 15 сентября 2011

У меня есть гистограмма, и я хочу, чтобы над каждым столбцом отображался какой-то текст, как я могу это сделать?

1 Ответ

38 голосов
/ 15 сентября 2011

Я считаю, что это укажет вам правильное направление:

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 (высота). Таким образом, все, что вам нужно сделать, это создать массив строк с именем 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)

Это должно сделать это!

...