Python可視化 | Seaborn5分鐘入門(七)——pairplot

微信公衆號:「Python讀財」
若有問題或建議,請公衆號留言

Seaborn是基於matplotlib的Python可視化庫。它提供了一個高級界面來繪製有吸引力的統計圖形。Seaborn實際上是在matplotlib的基礎上進行了更高級的API封裝,從而使得做圖更加容易,不須要通過大量的調整就能使你的圖變得精緻。python

今天給你們介紹的是pairplot,話很少說,直接進入正題。微信

注:全部代碼均在IPython notebook中實現學習

pairplot

pairplot中pair是成對的意思,pairplot主要展示的是變量兩兩之間的關係(線性或非線性,有無較爲明顯的相關關係),照例來總覽一下pairplot的API。spa

image

下面用鳶尾花數據集來介紹pairplot的用法。鳶尾花數據集已經用了很多次了,但大多數人(我也)可能還不知道鳶尾花長啥樣,先上張鳶尾花的圖。3d

image

先導入相關的包,並配置相關的參數code

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
sns.set_style('white',{'font.sans-serif':['simhei','Arial']})
#導入seaborn自帶iris數據集
data=sns.load_dataset("iris")  
#爲了方便你們觀看,把列名換成中文的
data.rename(columns={"sepal_length":"萼片長",
                     "sepal_width":"萼片寬",
                     "petal_length":"花瓣長",
                     "petal_width":"花瓣寬",
                     "species":"種類"},inplace=True)
kind_dict = {
    "setosa":"山鳶尾",
    "versicolor":"雜色鳶尾",
    "virginica":"維吉尼亞鳶尾"
}
data["種類"] = data["種類"].map(kind_dict)
data.head() #數據集的內容以下

image

先來直觀看看pairplot長什麼樣blog

sns.pairplot(data)

image

能夠看到對角線上是各個屬性的直方圖(分佈圖),而非對角線上是兩個不一樣屬性之間的相關圖,從圖中咱們發現,花瓣的長度和寬度之間以及萼片的長短和花瓣的長、寬之間具備比較明顯的相關關係。ci

接下來介紹一下pairplot主要的參數及其用法rem

kind:用於控制非對角線上的圖的類型,可選"scatter""reg"pandas

diag_kind:控制對角線上的圖的類型,可選"hist""kde"

sns.pairplot(data,kind="reg",diag_kind="kde")

image

kind 參數設置爲 "reg" 會爲非對角線上的散點圖擬合出一條迴歸直線,更直觀地顯示變量之間的關係。

那對於不一樣種類的花,其花萼和花瓣有什麼比較鮮明的特徵嗎?咱們經過hue參數把不一樣種類的花區分開,進行進一步分析。

hue :針對某一字段進行分類

#不一樣類別的點會以不一樣的顏色顯現出來
sns.pairplot(data,hue="種類")

image

咱們能夠從通過hue分類後的pairplot中發現,不管是從對角線上的分佈圖仍是從分類後的散點圖,均可以看出對於不一樣種類的花,其萼片長、花瓣長、花瓣寬的分佈差別較大,換句話說,這些屬性是能夠幫助咱們去識別不一樣種類的花的。

好比,對於萼片、花瓣長度較短,花瓣寬度較窄的花,那麼它大機率是山鳶尾。

固然,能夠經過palette參數來調出本身想要的顏色

palette:控制色調

sns.pairplot(data,hue="種類",palette="husl")

image

markers:控制散點的樣式

sns.pairplot(data,hue="種類",markers=["+", "s", "D"])

image

當咱們想單獨研究某兩個(或多個)變量的關係時,咱們只須要經過vars參數指定你想研究的變量

vars,x_vars,y_vars:選擇數據中的特定字段,以list形式傳入

#單獨用vars參數選擇"萼片長 "和"花瓣長"兩種屬性
sns.pairplot(data,vars=["萼片長","花瓣長"])

image

# 用x_vars和 y_vars參數指定
# 須要注意的是,x_vars和y_vars要同時指定
sns.pairplot(data,x_vars=["萼片長","花瓣寬"],
             y_vars=["萼片寬","花瓣長"])

image

更多的樣式能夠經過plot_kwsdiag_kws來進行控制

plot_kws:用於控制非對角線上的圖的樣式

diag_kws:用於控制對角線上圖的樣式

sns.pairplot(data,diag_kind="kde",
             plot_kws=dict(s=50,edgecolor="w",color="g",alpha=.5),
             diag_kws=dict(shade=True,color="r"))

image

掃碼關注公衆號「Python讀財」,第一時間獲取乾貨,還能夠加Python學習交流羣!!
公衆號二維碼.jpg

相關文章
相關標籤/搜索