Python統計分析可視化庫seaborn(相關性圖,變量分布圖,箱線圖等等)


Visualization of seaborn
  seaborn[1]是一個建立在matplot之上,可用於制作豐富和非常具有吸引力統計圖形的Python庫。Seaborn庫旨在將可視化作為探索和理解數據的核心部分,有助於幫人們更近距離了解所研究的數據集。無論是在kaggle官網各項算法比賽中,還是互聯網公司的實際業務數據挖掘場景中,都有它的身影。

   在本次介紹的這個項目中,我們將利用seaborn庫對數據集進行分析,分別展示不同類型的統計圖形。

首先,我們將導入可視化所需的所有必要包,我們將使用到的幾個包:

Numpy
pandas
matplotlib
seaborn

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

tips = pd.read_csv('tips.csv')
tips.head()

 

 

各屬性相關性

# 相關性
tips.corr()
Out[2]: 
            total_bill       tip      size
total_bill    1.000000  0.675734  0.598315
tip           0.675734  1.000000  0.489299
size          0.598315  0.489299  1.000000

 

pair plot圖

#相關性圖 很壯觀
sns.pairplot(tips) 

看圖說話:這些圖展現了數據集中消費總額、小費金額以及顧客數量三個特征(變量)之間的聯系。

 

#相關性圖,和某一列的關系
sns.pairplot(tips ,hue ='sex', markers=["o", "s"])

 

# 相關性熱力圖
sns.heatmap(tips.corr())

 看圖說話:熱力圖可用來顯示兩變量之間的相關性,在這里兩變量間對應的矩形框的顏色越淺,代表兩者之間越具有相關性。

# 分層相關性熱力圖
sns.clustermap(tips.corr())

 

g = sns.PairGrid(tips)
g.map_diag(sns.distplot)
g.map_upper(plt.scatter)
g.map_lower(sns.kdeplot)

看圖說話:這個厲害了。在pair grid圖中,你可以根據自己需求,在這里呈現上述介紹的各種類型的圖形。

 

單個屬性的分布

 

dist plot圖

sns.distplot(tips['total_bill'])

 

 

sns.distplot(tips['total_bill'],kde = False)

看圖說話:上圖顯示,顧客在餐廳的消費總金額主要是在5-35的范圍內分布的。

 

count plot圖

sns.countplot(x = 'smoker', data = tips)

看圖說話:上圖顯示,來餐廳就餐的顧客,不抽煙者比會抽煙者多

 

sns.countplot(x = 'size', data = tips)

這里寫圖片描述 
看圖說話:上圖顯示,2個人來餐廳就餐的總次數多一些。

 

rug plot圖

sns.rugplot(tips['total_bill'])

 


看圖說話:上圖呈現的是,顧客就餐消費總額在各個值上的邊緣分布。

 

kde plot圖

sns.kdeplot(tips['total_bill'], shade=True)

 

 

看圖說話:KDE代表內核密度估計,它也顯示了各個消費總金額數值的統計分布。

 

 

兩兩屬性的相關性圖

 

joint plot圖

sns.jointplot(x = 'total_bill', y = 'tip', data = tips)


看圖說話:上圖顯示,顧客主要消費水平在10-30遠之間,而此時,對應給侍者小費的錢在1-5元之間。

 

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'hex')

 

另一種清晰地可視化視圖,顏色的深度代表頻次。

 

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'reg')

 

 

看圖說話:通過做一條簡單的回歸線,它表明了小費的金額是隨着總賬單金額的增加而增加的。

 

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'kde')

 

 

另一種可視化統計圖:某個區域越暗,表明這個區域對應的頻次越多。

 

box plot圖

sns.boxplot(x = 'day', y= 'total_bill', data = tips)


看圖說話:上圖顯示大部分賬單是在周六和周日支付的。

sns.boxplot(x = 'day', y= 'total_bill', data = tips, hue = 'sex')

 

看圖說話:在上面的圖表中你可以看到,在周六時,女性買單的次數會比男性多。(難道是因為買買買,男性付了好多錢,女性為了彌補男性的心里落差,然后請吃飯?哈哈)

 

violin plot

sns.violinplot(x = 'day', y= 'total_bill', data = tips)

 

看圖說話:voilin plot和box plot很相似,但它結合了box plot圖和密度痕跡。

sns.violinplot(x = 'day', y= 'total_bill', data = tips, hue = 'sex', split = True)

 

 

看圖說話:增加了性別的區分

 

strip plot圖

sns.stripplot(x = 'day', y = 'total_bill', data = tips)

 

 

看圖說話:這幅圖呈現的是周四、周五、周六和周日這四天,顧客消費總額的散點圖。

 

sns.stripplot(x = 'day', y = 'total_bill', data = tips, jitter= True,hue = 'sex', dodge = True)

 

 

看圖說話:和上圖一樣,只不過對性別進行了區別。

 

swarm plot圖

sns.swarmplot(x = 'day', y = 'total_bill', data = tips)

 

 

看圖說話:Swarn plot和stripplot比較類似,但Swarn plot的不同之處在於它不會重疊數據點。

 

factor plot圖

sns.factorplot(x = 'day', y = 'total_bill', kind = 'box', data = tips)

 

 

看圖說話:在factorplot圖中,你可以給出任何你需要顯示的圖形。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM