箱线图的含义

        如下图所示,箱线图,矩形部分称为箱体,箱体中的线代表中位数;

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

 参考:python绘制箱线图boxplot()_小朱小朱绝不服输的博客-CSDN博客_python画箱线图

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐