微信公衆號:「Python讀財」
若有問題或建議,請公衆號留言
Seaborn是基於matplotlib的Python可視化庫。它提供了一個高級界面來繪製有吸引力的統計圖形。Seaborn實際上是在matplotlib的基礎上進行了更高級的API封裝,從而使得做圖更加容易,不須要通過大量的調整就能使你的圖變得精緻。python
今天給你們介紹的是pairplot,話很少說,直接進入正題。微信
注:全部代碼均在IPython notebook中實現學習
pairplot中pair是成對的意思,pairplot主要展示的是變量兩兩之間的關係(線性或非線性,有無較爲明顯的相關關係),照例來總覽一下pairplot的API。spa
下面用鳶尾花數據集來介紹pairplot的用法。鳶尾花數據集已經用了很多次了,但大多數人(我也)可能還不知道鳶尾花長啥樣,先上張鳶尾花的圖。3d
先導入相關的包,並配置相關的參數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() #數據集的內容以下
先來直觀看看pairplot長什麼樣blog
sns.pairplot(data)
能夠看到對角線上是各個屬性的直方圖(分佈圖),而非對角線上是兩個不一樣屬性之間的相關圖,從圖中咱們發現,花瓣的長度和寬度之間以及萼片的長短和花瓣的長、寬之間具備比較明顯的相關關係。ci
接下來介紹一下pairplot主要的參數及其用法rem
kind
:用於控制非對角線上的圖的類型,可選"scatter"
與"reg"
pandas
diag_kind
:控制對角線上的圖的類型,可選"hist"
與"kde"
sns.pairplot(data,kind="reg",diag_kind="kde")
將 kind
參數設置爲 "reg"
會爲非對角線上的散點圖擬合出一條迴歸直線,更直觀地顯示變量之間的關係。
那對於不一樣種類的花,其花萼和花瓣有什麼比較鮮明的特徵嗎?咱們經過hue
參數把不一樣種類的花區分開,進行進一步分析。
hue
:針對某一字段進行分類
#不一樣類別的點會以不一樣的顏色顯現出來 sns.pairplot(data,hue="種類")
咱們能夠從通過hue
分類後的pairplot
中發現,不管是從對角線上的分佈圖仍是從分類後的散點圖,均可以看出對於不一樣種類的花,其萼片長、花瓣長、花瓣寬的分佈差別較大,換句話說,這些屬性是能夠幫助咱們去識別不一樣種類的花的。
好比,對於萼片、花瓣長度較短,花瓣寬度較窄的花,那麼它大機率是山鳶尾。
固然,能夠經過palette
參數來調出本身想要的顏色
palette
:控制色調
sns.pairplot(data,hue="種類",palette="husl")
markers
:控制散點的樣式
sns.pairplot(data,hue="種類",markers=["+", "s", "D"])
當咱們想單獨研究某兩個(或多個)變量的關係時,咱們只須要經過vars
參數指定你想研究的變量
vars
,x_vars
,y_vars
:選擇數據中的特定字段,以list
形式傳入
#單獨用vars參數選擇"萼片長 "和"花瓣長"兩種屬性 sns.pairplot(data,vars=["萼片長","花瓣長"])
# 用x_vars和 y_vars參數指定 # 須要注意的是,x_vars和y_vars要同時指定 sns.pairplot(data,x_vars=["萼片長","花瓣寬"], y_vars=["萼片寬","花瓣長"])
更多的樣式能夠經過plot_kws
和diag_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"))
掃碼關注公衆號「Python讀財」,第一時間獲取乾貨,還能夠加Python學習交流羣!!