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=["萼片寬","花瓣長"])