今天我們要介紹的是箱式圖,在介紹如何繪制之前,我們還是先介紹一下,箱式圖的一些相關(guān)的知識。順便教你如何分析箱式圖。 我們首先來看看什么是箱式圖? 那大家知不知道箱式圖都有些什么特點呢? 箱盒圖(也稱盒圖,箱線圖等)是在1977年由美國統(tǒng)計學(xué)家John Tukey發(fā)明,分析數(shù)據(jù)需要為定量數(shù)據(jù)。通過箱式圖,可以直觀的探索數(shù)據(jù)特征。 箱盒圖共由五個數(shù)值點構(gòu)成,分別是最小觀察值(下邊緣),25%分位數(shù)(Q1),中位數(shù),75%分位數(shù)(Q3),最大觀察值(上邊緣)。 ·中橫線:中位數(shù) ·IQR:75%分位數(shù)(Q3)-25%分位數(shù)(Q1)也就是上四分位數(shù)減去下四分位數(shù) 我們現(xiàn)在來看看怎么計算分位數(shù),我們將數(shù)據(jù)從小到大排好,首先我們知道中位數(shù)是什么,就是排在中間位置的數(shù)。我們舉個例子看看如何求四分位數(shù),假設(shè)我們有n個數(shù)據(jù),那么有: 下四分位數(shù): 如果能夠整除,那么得到的數(shù)字就是下四分位數(shù)的位置。 上四分位數(shù): ,如果能夠整除,那么得到的數(shù)字就是上四分位數(shù)的位置。 當(dāng)然我們肯定也會遇到不可能整除的情況,假設(shè)我們現(xiàn)在有這樣一組數(shù)據(jù)1,2,3,4,5,6,7,8那么根據(jù)上面的計算公式,有 下四分位數(shù): 說明我們的下四分位數(shù)位于第二個位置的數(shù)字和第三個位置的數(shù)字之間,但是更靠近第二個位置的數(shù)字,因此下四分位數(shù)為: 上四分位數(shù)為: ,說明我們的上四分位數(shù)位于第六個位置的數(shù)字和第七個位置的數(shù)字之間,但是更靠近第七個位置的數(shù)字,因此上四分位數(shù)為: 同時我們觀察,如果看到中位數(shù)離上四分位數(shù)近的話,說明后面的數(shù)據(jù)值大。 我們問這樣一個問題,上邊緣的值是數(shù)據(jù)中的最大值嗎?下邊緣值是數(shù)據(jù)中的最小值嗎?為了解決這個問題,我們來看看上邊緣值和下邊緣值的定義: ·最小觀察值(下邊緣) = Q1 – 1.5 IQR ·最大觀察值 (上邊緣)= Q3 + 1.5 IQR 所以從這個定義中,我們就可以看到上邊緣值不是數(shù)據(jù)中的最大值,下邊緣值不是數(shù)據(jù)中的最小值,所以數(shù)據(jù)中偏離上邊緣值和下邊緣值的數(shù)據(jù)我們稱之為異常值。 好了,理解了箱式圖的含義之后,我們接下來看看如何繪制箱式圖。 在這之前,我們先來看看我們的數(shù)據(jù)內(nèi)容。 我們可以看到我們共有244個數(shù)據(jù),7個屬性列。 最開始我們還是引入我們需要的庫: import numpy as npimport pandas as pdimport seaborn as sns 接下來,我們首先利用total_bill這一列的數(shù)據(jù)來做一個箱式圖 在開始之前,我們還是來看看都有哪些參數(shù)。 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']) 接下來,我們一個一個的加上參數(shù),看看有什么變化,首先我們加上參數(shù)x,y sns.boxplot(x = 'day',y = 'total_bill',data = tips) sns.boxplot(x = 'day', y = 'total_bill', data = tips, hue = 'smoker') 在這個圖中,我們加上了參數(shù)hue,我們可以看到hue參數(shù)的作用其實還是一個分類的參數(shù),在這里我們將smoker分為吸煙和不吸煙者,我們可以看到吸煙者和不吸煙者的total_bill是有很大差別的。 我們加上palette參數(shù)后,看看又有什么區(qū)別。 sns.boxplot(x = 'day', y = 'total_bill', data = tips, hue = 'smoker',palette='Set2') 我們可以看到palette參數(shù)的作用就是更改配色方案。 最后,我們使用 將數(shù)據(jù)點標(biāo)注在箱式圖上。 sns.boxplot(x='day', y='total_bill', data=tips)sns.swarmplot(x='day', y='total_bill', data=tips, color='.20') 你學(xué)會了嗎?歡迎大家與我分享交流! 大家可以私信我獲得數(shù)據(jù)集哦!?????? |
|