Visualization of seaborn
seaborn[1]是一個創建在matplot之上,可用於製做豐富和很是具備吸引力統計圖形的Python庫。Seaborn庫旨在將可視化做爲探索和理解數據的核心部分,有助於幫人們更近距離了解所研究的數據集。不管是在kaggle官網各項算法比賽中,仍是互聯網公司的實際業務數據挖掘場景中,都有它的身影。算法
在本次介紹的這個項目中,咱們將利用seaborn庫對數據集進行分析,分別展現不一樣類型的統計圖形。spa
首先,咱們將導入可視化所需的全部必要包,咱們將使用到的幾個包:3d
Numpy
pandas
matplotlib
seaborn
code
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()
各屬性相關性blog
# 相關性 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
#相關性圖 很壯觀 sns.pairplot(tips)
看圖說話:這些圖展示了數據集中消費總額、小費金額以及顧客數量三個特徵(變量)之間的聯繫。圖片
#相關性圖,和某一列的關係 sns.pairplot(tips ,hue ='sex', markers=["o", "s"])
# 相關性熱力圖 sns.heatmap(tips.corr())
看圖說話:熱力圖可用來顯示兩變量之間的相關性,在這裏兩變量間對應的矩形框的顏色越淺,表明二者之間越具備相關性。ip
# 分層相關性熱力圖 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圖中,你能夠根據本身需求,在這裏呈現上述介紹的各類類型的圖形。pandas
單個屬性的分佈it
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)
看圖說話:這幅圖呈現的是周4、周5、週六和週日這四天,顧客消費總額的散點圖。
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圖中,你能夠給出任何你須要顯示的圖形。