python 箱线图的绘制方法
python 箱线图的绘制方法
箱线图的含义
如下图所示,箱线图,矩形部分称为箱体,箱体中的线代表中位数;
data = [......], 按照顺序排好; -- 以下数的求法,可以参考numpy;
然后 中位数:m = data.中位数;
数据被分为四等份;
down = [0, data.中位数].中位数 -- 下四分位数;
up = [data.中位数,data] -- 上四分位数;
IQR = up - down;
上边缘: up + 1.5IQR;
下边缘: down - 1.5IQR;
很多时候,比如厂商生产零件,其零件大小等指标不是按照正态分布的方式,而是分布在箱体附近;
上下边缘内的值视为可接受值,超过上下边缘的值,称为异常值;
箱线图绘制实操
首先,查看接口文档内容:
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_ticks=True, autorange=False,
zorder=None, *, data=None)
参数含义:
x: 表示绘制箱线图的数据,可以为1组或多组数据;
sym:指定异常点的形状,默认为蓝色‘+’号;
vert:是否需要将箱线图垂直摆放,默认垂直摆放;
showbox:是否显示箱线图的箱体,默认显示;
showfliers:是否显示异常值,默认显示;
showmeans:是否显示均值,默认不显示;
meanline:是否用线的形式表示均值,默认用点来表示;
medianprops:设置中位数的属性,如线的类型、粗细等;
meanprops:设置均值的属性,如点的大小、颜色等;
flierprops:设置异常值的属性,如异常点的形状、大小、填充色等;
labels:为箱线图添加标签,类似于图例的作用;
代码演示:
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> array = np.arange(10)
>>> plt.boxplot(array)
>>> plt.show()
经过上述五行代码,可以得到如下的箱线图:
接下来绘制多个箱线图:
代码演示:
>>> labels = 'A', 'B', 'C', 'D', 'E', 'F'
>>> A = [0.4978, 0.5764, 0.5073, 0.5609]
>>> B = [0.5996, 0.65, 0.6251, 0.6473]
>>> C = [0.6015, 0.687, 0.6237, 0.6761]
>>> D = [0.5918, 0.6999, 0.6343, 0.6947]
>>> E = [0.577, 0.6932, 0.6593, 0.7036]
>>> F = [0.5637, 0.7161, 0.6683, 0.697]
>>> plt.grid(True) # 显示网格
>>> plt.boxplot([A, B, C, D, E, F],medianprops={'color': 'red', 'linewidth': '1.5'},meanline=True,showmeans=True,meanprops={'color': 'blue', 'ls': '--', 'linewidth': '1.5'},flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 10})
>>> plt.show()
更多推荐
所有评论(0)