pyplot中绘制箱线图的函数为boxplot,其语法格式如下。
matplotlib.pyplot.boxplot(x,notch=None,sym=None,
vert=None,whis=None,positions=None,widths=None,
patch_artist=None,bootstrap=None,usermedians=None,
conf_intervals=None,meanline=None,showmeans=None,showcaps=None,
showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,
medianprops=None,meanprops=None,capprops=None,whiskerprops=None,
manage_xticks=True,autorange=False,zorder=None,hold=None,data=None)
函数中的主要参数说明如下。
■ x:接收array。表示用于绘制箱线图的数据,无默认。
■ notch:接收boolean。表示中间箱体是否有缺口,默认为None。
■ sym:接收特定string。指定异常点形状,默认为None。
■ vert:接收boolean。表示图形是纵向还是横向,默认为None
■ positions:接收array。表示图形位置,默认为None。
■ widths:接收scalar或者array。表示每个箱体的宽度,默认为None。
■ labels:接收array。指定每一个箱线图的标签,默认为None。
■ meanline:接收boolean。表示是否显示均线值,默认为False。
■ patch_artist: 是否填充箱体颜色
■ showmeans: 是否显示均值
*■ meanprops: 设置均值属性,如点的大小,颜色等
*■ medianprops: 设置中位数的属性,如线的类型,大小等
■ showfliers: 是否表示有异常值
*■ boxprops:设置箱体的属性,边框色和填充色
import matplotlib.pyplot as plt
import numpy as np
#导入2007—2016年就业数据
Emp_data= np.loadtxt('d:\data\Employedpopulation.csv',delimiter = ",",
usecols=(1,2,3,4,5,6,7,8,9,10),dtype=int)
# 设置Matplotlib正常显示中文和负号
plt.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
#将2007—2016年就业数据赋值给X
X = [Emp_data[1],Emp_data[2],Emp_data[3]]
#创建一个绘图对象
plt.figure(figsize=(8, 6))
label = ['全国就业','城镇就业','乡村就业'] #定义箱线的标签,标签是列表
#绘制箱线图
plt.boxplot(X,notch=True, labels=label,meanline=True)
#添加标题
plt.title("2007-2016年城镇、乡村和全部就业人员情况箱线图")
#添加图例
plt.legend({'全国就业','城镇就业','乡村就业'})
# plt.savefig('d:/data/Employedpopulation_box.png')
plt.show()
plt.boxplot(x=df['Age'].fillna(0),patch_artist=True,showmeans =True,
boxprops={'color':'red','facecolor':'steelblue'},
showfliers=True,widths=0.4,
flierprops={'marker':'o','markerfacecolor':'red','markersize':5},
meanprops={'marker':'D','markerfacecolor':'indianred','markersize':4},
medianprops={'linestyle':'--','color':'orange'})
plt.title('user age boxplot')
plt.show()