matplotlib绘制直方图【柱状图】

代码:

def drawBar():
    xticks = ['A', 'B', 'C', 'D', 'E']#每个柱的下标说明
    gradeGroup = {'A':200,'B':250,'C':330,'D':400,'E':500}#用于画图的频率数据
    
    #创建柱状图
    #第一个参数为柱的横坐标
    #第二个参数为柱的高度
    #参数align为柱的对齐方式,以第一个参数为参考标准
    plt.bar(range(5), [gradeGroup.get(xtick, 0) for xtick in xticks], align='center',yerr=0.000001)

    #设置柱的文字说明
    #第一个参数为文字说明的横坐标
    #第二个参数为文字说明的内容
    plt.xticks(range(5), xticks)

    #设置横坐标轴的标签说明
    plt.xlabel('Grade')
    #设置纵坐标轴的标签说明
    plt.ylabel('Frequency')
    #设置标题
    plt.title('Grades Of Male Students')
    #绘图
    plt.show()

效果图:

由此看出,要绘制直方图,只要准备一个包含频率(柱状体高度)的字典,字典的key即为柱状体的下标,字典的value即为柱状体高度,各个柱状体的横坐标由字典的大小(多少个键值对)确定。

matplotlib的另外一种绘制直方图函数是hist(),暂时不会用,待学习。

参考:http://www.cnblogs.com/harvey888/p/5717098.html

原文地址:https://www.cnblogs.com/aaronhoo/p/5890431.html