箱线图(Box-plot)又称为盒须图、盒式图或箱型图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上限值、下限值、中位数(Q2)和下四分位数(Q1)以及上四分位数(Q3);然后,连接两个四分位数画出箱子;再将最大值和最小值与箱子相连接,中位数在箱子中间。
中位数:把数据按照从小到大的顺序排序,然后最中间的那个值为中位数,如果数据的个数为偶数,那么就是最中间的两个数的平均数为中位数。 上下四分位数:同样把数据排好序后,把数据等分为4份。出现在
25%
位置的叫做下四分位数,出现在75%
位置上的数叫做上四分位数。但是四分位数位置的确定方法不是固定的,有几种算法,每种方法得到的结果会有一定差异,但差异不会很大。上下限的计算规则是: IQR=Q3-Q1 上限=Q3+1.5IQR 下限=Q1-1.5IQR
在matplotlib
中有plt.boxplot
来绘制箱线图,这个方法的相关参数如下:
x
:需要绘制的箱线图的数据。notch
:是否展示置信区间,默认是False
。如果设置为True
,那么就会在盒子上展示一个缺口。sym
:代表异常点的符号表示,默认是小圆点。vert
:是否是垂直的,默认是True
,如果设置为False
那么将水平方向展示。whis
:上下限的系数,默认是1.5
,也就是上限是Q3+1.5IQR
,可以改成其他的。也可以为一个序列,如果是序列,那么序列中的两个值分别代表的就是下限和上限的值,而不是再需要通过IQR
来计算。positions
:设置每个盒子的位置。widths
:设置每个盒子的宽度。labels
:每个盒子的label
。meanline
和showmeans
:如果这两个都为True
,那么将会绘制平均值的的线条。示例代码如下:
data = np.random.rand(100)*100 # 添加两个异常值 data = np.append(data,np.array([-100,100])) plt.boxplot(data,meanline=True,showmeans=True)
效果图如下:
原文:https://www.cnblogs.com/qshhl/p/14667354.html