python画柱状图
- 带数字,带图例,多数据并列柱状图
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
#控制柱状图中的数字显示
def autolabel(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2.-0.25, 1.01*height, '%s' % int(height))
#多数据并列柱状图
mpl.rcParams["font.sans-serif"]=["SimHei"] #设置中文黑体
mpl.rcParams["axes.unicode_minus"]=False
x = np.arange(6)
y1 = [23,5,14,27,18,14]
y2 = [10,27,25,18,23,16]
tick_label = ["A","B","C","D","E","F"] #设置横坐标的度量名称plt.xticks
bar_width = 0.35 #设置各个柱状图之间的间距
a=plt.bar(x,y1,bar_width,align="center",label="班级A",alpha=0.5)#label与下列的legend结合使用显示图例
b=plt.bar(x+bar_width,y2,bar_width,align="center",label="班级B",alpha=0.5)
autolabel(a)
autolabel(b)
plt.xlabel("成绩等级")
plt.ylabel("人数")
plt.xticks(x+bar_width/2,tick_label)#设置x轴的刻度名称
plt.legend(bbox_to_anchor=(1,1),#图例边界框起始位置
loc="upper right",#图例的位置
ncol=1,# 设置图例的列数
mode="None",#当值设置为“expend”时,图例会水平扩展至整个坐标轴区域
borderaxespad=0.2,#坐标轴和图例边界之间的间距
title="班级",#图例标题
shadow=False,#是否为线框添加阴影
fancybox=True)#线框圆角处理参数
plt.show()
————————————————
结果如下: