sns.pairplot()


pairplot:pair是成對的意思,即是說這個用來展現變量兩兩之間的關系,線性、非線性、相關等等

使用鳶尾花數據畫圖

#兩種導入方式,這次是直接從sklearn.datasets導入
import pandas as pd 
from sklearn import datasets
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.set_style('white',{'font.sans-serif':['simhei','Arial']})  #解決中文不能顯示問題

iris=datasets.load_iris()
iris_data= pd.DataFrame(iris.data,columns=iris.feature_names)
iris_data['species']=iris.target_names[iris.target]
iris_data.head(3).append(iris_data.tail(3))   #前面三條+后面三條
iris_data.rename(columns={"sepal length (cm)":"萼片長",
                     "sepal width (cm)":"萼片寬",
                     "petal length (cm)":"花瓣長",
                     "petal width (cm)":"花瓣寬",
                     "species":"種類"},inplace=True)
kind_dict = {
    "setosa":"山鳶尾",
    "versicolor":"雜色鳶尾",
    "virginica":"維吉尼亞鳶尾"
}
iris_data["種類"] = iris_data["種類"].map(kind_dict)

畫變量之間關系的圖

#全部變量都放進去
sns.pairplot(iris_data)

可以看到對角線上是各個屬性的直方圖(分布圖),而非對角線上是兩個不同屬性之間的相關圖,
從圖中我們發現,花瓣的長度和寬度之間以及萼片的長短和花瓣的長、寬之間具有比較明顯的相關關系

 

#kind:用於控制非對角線上圖的類型,可選'scatter'與'reg'
#diag_kind:用於控制對角線上的圖分類型,可選'hist'與'kde'

sns.pairplot(iris_data,kind='reg',diag_kind='ked')
sns.pairplot(iris_data,kind='reg',diag_kind='hist')

 

 

 

 

#hue:針對某一字段進行分類
sns.pairplot(iris_data,hue='種類')

 

經過hue分類后的pairplot中發現,不論是從對角線上的分布圖還是從分類后的散點圖,
都可以看出對於不同種類的花,其萼片長、花瓣長、花瓣寬的分布差異較大,換句話說,
這些屬性是可以幫助我們去識別不同種類的花的。
比如,對於萼片、花瓣長度較短,花瓣寬度較窄的花,那么它大概率是山鳶尾

 

#vars:研究某2個或者多個變量之間的關系vars,
#x_vars,y_vars:選擇數據中的特定字段,以list形式傳入需要注意的是,x_vars和y_vars要同時指定

sns.pairplot(iris_data,vars=["萼片長","花瓣長"])
sns.pairplot(iris_data,x_vars=["萼片長","花瓣寬"],y_vars=["萼片寬","花瓣長"]) 

 

 

 


免責聲明!

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



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