今天我们要介绍的是箱式图,在介绍如何绘制之前,我们还是先介绍一下,箱式图的一些相关的知识。顺便教你如何分析箱式图。 我们首先来看看什么是箱式图? 那大家知不知道箱式图都有些什么特点呢? 箱盒图(也称盒图,箱线图等)是在1977年由美国统计学家John Tukey发明,分析数据需要为定量数据。通过箱式图,可以直观的探索数据特征。 箱盒图共由五个数值点构成,分别是最小观察值(下边缘),25%分位数(Q1),中位数,75%分位数(Q3),最大观察值(上边缘)。 ·中横线:中位数 ·IQR:75%分位数(Q3)-25%分位数(Q1)也就是上四分位数减去下四分位数 我们现在来看看怎么计算分位数,我们将数据从小到大排好,首先我们知道中位数是什么,就是排在中间位置的数。我们举个例子看看如何求四分位数,假设我们有n个数据,那么有: 下四分位数: 如果能够整除,那么得到的数字就是下四分位数的位置。 上四分位数: ,如果能够整除,那么得到的数字就是上四分位数的位置。 当然我们肯定也会遇到不可能整除的情况,假设我们现在有这样一组数据1,2,3,4,5,6,7,8那么根据上面的计算公式,有 下四分位数: 说明我们的下四分位数位于第二个位置的数字和第三个位置的数字之间,但是更靠近第二个位置的数字,因此下四分位数为: 上四分位数为: ,说明我们的上四分位数位于第六个位置的数字和第七个位置的数字之间,但是更靠近第七个位置的数字,因此上四分位数为: 同时我们观察,如果看到中位数离上四分位数近的话,说明后面的数据值大。 我们问这样一个问题,上边缘的值是数据中的最大值吗?下边缘值是数据中的最小值吗?为了解决这个问题,我们来看看上边缘值和下边缘值的定义: ·最小观察值(下边缘) = Q1 – 1.5 IQR ·最大观察值 (上边缘)= Q3 + 1.5 IQR 所以从这个定义中,我们就可以看到上边缘值不是数据中的最大值,下边缘值不是数据中的最小值,所以数据中偏离上边缘值和下边缘值的数据我们称之为异常值。 好了,理解了箱式图的含义之后,我们接下来看看如何绘制箱式图。 在这之前,我们先来看看我们的数据内容。 我们可以看到我们共有244个数据,7个属性列。 最开始我们还是引入我们需要的库: import numpy as npimport pandas as pdimport seaborn as sns 接下来,我们首先利用total_bill这一列的数据来做一个箱式图 在开始之前,我们还是来看看都有哪些参数。 seaborn.boxplot(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, dodge=True, fliersize=5, linewidth=None, whis=1.5, ax=None, **kwargs) sns.boxplot(x = tips['total_bill']) 接下来,我们一个一个的加上参数,看看有什么变化,首先我们加上参数x,y sns.boxplot(x = 'day',y = 'total_bill',data = tips) sns.boxplot(x = 'day', y = 'total_bill', data = tips, hue = 'smoker') 在这个图中,我们加上了参数hue,我们可以看到hue参数的作用其实还是一个分类的参数,在这里我们将smoker分为吸烟和不吸烟者,我们可以看到吸烟者和不吸烟者的total_bill是有很大差别的。 我们加上palette参数后,看看又有什么区别。 sns.boxplot(x = 'day', y = 'total_bill', data = tips, hue = 'smoker',palette='Set2') 我们可以看到palette参数的作用就是更改配色方案。 最后,我们使用 将数据点标注在箱式图上。 sns.boxplot(x='day', y='total_bill', data=tips)sns.swarmplot(x='day', y='total_bill', data=tips, color='.20') 你学会了吗?欢迎大家与我分享交流! 大家可以私信我获得数据集哦!😍😍😍 |
|