How can I display text over columns in a bar chart in matplotlib?

前端 未结 1 859
南笙
南笙 2020-12-01 18:19

I have a bar chart and I want over each column to display some text,how can I do that ?

相关标签:
1条回答
  • 2020-12-01 18:33

    I believe this will point you in the right direction:

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

    The part that you are most interested in is:

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

    The placement of the text is determined by the height function, or the height of the column, and the number that is put on top of each column is written by: '%d' %int(height). So all you need to do is create an array of strings, called 'name', that you want at the top of the columns and iterate through. Be sure to change the format to be for a string (%s) and not a double.

    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)
    

    That should do it!

    0 讨论(0)
提交回复
热议问题