简述:

  盒图是在1977年由美国的统计学家约翰·图基(John
Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如下图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。

  由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即:

IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。

  • 最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
  • 最大观测值为max = Q3 -1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:
  1. 直观地识别数据集中的异常值(查看离群点)。
  2. 判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

实例:

12位商学院毕业生月起薪的样本在这里按升序重复如下。

  2710 2755 2850 | 2880 2880 2890 | 2920 2940 2950 | 3050 3130 3325

  Q1 = 2865 Q2 = 2905(中位数) Q3 = 3000

  中位数是2 905,第一个四分位数Q1 = 2865,第三个四分位数Q3 = 3000。检查这些数据,最小值为2710,最大值为3325。因此,薪水数据的五数概括数据为2710、2865、2905、3000、3325。大约1/4或25%的观察值在五数概括的相邻两个数字之间。

  箱线图是在五数概括的基础上对数据进行描述的图形方法。绘制箱线图的关键是计算中位数、四分位数Q1Q3。也可以使用四分位数全距IQR = Q3Q1。图1是月起薪数据的箱线图。

  绘制箱线图的步骤如下:

  1.画一只箱子,箱子两端分别位于第一个和第三个四分位数上。对于薪水数据来说,Q1 = 2865以及Q3 = 3000。这个箱子包括中间50%的数据。

  2.在箱子中位数(薪水数据是2905)的位置画一条垂直线。

  3.用四分位数全距IQR = Q3Q1,确定限制线的位置。箱线图的上、下限制线分别在比Q1低1.5(IQR)和比Q3高1.5(IQR)的位置上。对于薪水数据来说,IQR = Q3Q1 = 3000 − 2865 = 135。因此,限制线的位置在2865 − 1.5(135) = 2662.5和3000 + 1.5(135) = 3202.5处。两条限制线以外的数据可以认为是异常值。

  4.图1中的虚线称为触须线。触须线从箱子两端开始绘制,直至第3步中计算的限制线内的最小值和最大值。因此,薪水数据的触须线分别在2 710和3 130处结束。

  5.最后,每个异常值的位置都用星号“*”表示出来。在图1中,我们可以看到一个异常值,即3325。

  

  在图1中,我们画出了表示上下界限位置的直线。画这些线是为了说明如何计算薪水数据的限制线并标出其位置。虽然限制线通常要计算出来,但是在箱线图中一般并不标示出来。图2显示了薪水数据的常见箱线图的形状。

  

seaborn(sns)调用举例:

import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
# 绘制箱线图
ax = sns.boxplot(x=tips["total_bill"])
# 竖着放的箱线图,也就是将x换成y
ax = sns.boxplot(y=tips["total_bill"])

Ref:

1.盒图(boxplot): http://www.blogjava.net/norvid/articles/317235.html

2. 箱线图: http://wiki.mbalib.com/wiki/%E7%AE%B1%E7%BA%BF%E5%9B%BE#_ref-1

3. Seaborn(sns)官方文档学习笔记(第五章 分类数据的绘制) https://zhuanlan.zhihu.com/p/27683042

4. python seaborn画图: http://blog.csdn.net/suzyu12345/article/details/69029106

箱线图(boxplot)简介与举例的更多相关文章

  1. 箱线图boxplot

    箱线图boxplot--展示数据的分布 图表作用: 1.反映一组数据的分布特征,如:分布是否对称,是否存在离群点 2.对多组数据的分布特征进行比较 3.如果只有一个定量变量,很少用箱线图去看数据的分布 ...

  2. 一起来玩echarts系列(一)------箱线图的分析与绘制

    一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...

  3. Matlab boxplot for Multiple Groups(多组数据的箱线图)

    在画之前首先介绍一下Matlab boxplot,下面这段说明内容来自http://www.plob.org/2012/06/10/2153.html   由于matlab具有强大的计算功能,用其统计 ...

  4. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  5. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  6. matplotlib箱线图与柱状图比较

    代码: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 16:37:47 2018 @author: zhen &qu ...

  7. python3绘图示例4(基于matplotlib:箱线图、散点图等)

    #!/usr/bin/env python# -*- coding:utf-8 -*- from matplotlib.pyplot import * x=[1,2,3,4]y=[5,4,3,2] # ...

  8. 扩增子图表解读1箱线图:Alpha多样性

    箱线图 箱形图(Box-plot)又称为盒须图.盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图.因形状如箱子而得名.在宏基因组领域,常用于展示样品组中各样品Alpha多样性的分布 第一种情 ...

  9. R_Studio(学生成绩)对数据缺失值md.pattern()、异常值分析(箱线图)

    我们发现这张Gary.csv表格存在学生成绩不完全的(五十三名学生,三名学生存在成绩不完整.共四个不完整成绩) 79号大学语文.高等数学 96号中国近代史纲要 65号大学体育 (1)NA表示数据集中的 ...

随机推荐

  1. MySql-python的API手记

    --------------------python控制mysql的API--------------------#import MySQLdb:引用对应的开发包#conn=MySQLdb.conne ...

  2. ElasticSearch和Kibana 5.X集群的安装

    ElasticSearch和Kibana 5.X集群的安装 1.准备工作 1.1.下载安装包 1.2.系统的准备 2.ElasticSearch集群的安装 2.1.修改 config/elastics ...

  3. Spring定时任务quartz表达式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp32 0 0 12 * * ?---------------在每天中午12: ...

  4. Swift4.0 Array详解

    数组的介绍 数组(Array)是一串有序的由相同类型元素构成的集合,数组中的集合元素是有序的,可以重复出现.在Swift中数组类型是Array,是一个泛型集合.数组分成:可变数组和不可变数组,分别使用 ...

  5. CCIE-MPLS基础篇-实验手册

    又一部前期JUSTECH(南京捷式泰)工程师职业发展系列丛书完整拷贝. MPLS(Multi-Protocol Label Switching) 目录 1:MPLS 基础实验.... 1.1实验拓扑. ...

  6. Beta版本冲刺计划安排

    1.介绍小组新加入的成员,Ta担任的角色 王婧:web界面以及前端和后台的交互 柯怡芳:PM以及文档 陈艺菡:修复bug以及文档 钱惠:web界面以及前端和后台的交互 林凯:测试人员 吴伟君(新成员) ...

  7. bean的生命周期以及延迟实例化

    可以指定bean的初始化创建的时候调用的方法,以及销毁的时候调用的方法. 通过指定中的init-method和destroy-method方法指定bean的创建和销毁的时候执行类中的方法. 把lazy ...

  8. 201521123030《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 控制可见性的4个访问修饰符 private -- 仅对本类可见 public -- 对所有类 ...

  9. 在Python中数据类型转换的注意事项

    在学习Python的过程接触到了数据类型转化这一过程,在实践的过程中我发现了一个小问题,我们在平常的使用中要一定注意 在str型转换成int型的过程中,str内的内容必须是整数不然会报错 如图: 在转 ...

  10. 201521123024 《java程序设计》 第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容.