Python可視化 | Seaborn5分鐘入門(五)——lmplot

 

公衆號:「Python讀財」
有任何問題,請到公衆號留言

Seaborn是基於matplotlib的Python可視化庫。 它提供了一個高級界面來繪製有吸引力的統計圖形。Seaborn其實是在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易,不需要經過大量的調整就能使你的圖變得精緻。但應強調的是,應該把Seaborn視爲matplotlib的補充,而不是替代物。

 

注:所有代碼均在IPython notebook中實現


lmplot(迴歸圖)

lmplot是用來繪製迴歸圖的,通過lmplot我們可以直觀地總覽數據的內在關係

先總覽一下stripplot的API:

seaborn.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None, size=5, aspect=1, markers='o', sharex=True, sharey=True, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=True, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=False, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None)

可以看到lmplot的參數還是比較多的,接下來我們就挑一些常用的來講一下,有一些參數會涉及到一些統計學的知識。

老套路,先導入相應的包:

 

1import seaborn as sns
2%matplotlib inline
3sns.set(font_scale=1.5,style="white")

本次試用的數據集是Seaborn內置的tips小費數據集:

1data=sns.load_dataset("tips")
2data.head(5) 

我們先來看一下lmplot是什麼樣的

1sns.lmplot(x="total_bill",y="tip",
2           data=data)

可以看到lmplot對所選數據集進行了一元線性迴歸,擬合出了一條最佳的直線,

接下來進入具體參數的演示。

 

col:根據所指定屬性在列上分類

row:根據所指定屬性在行上分類

1sns.lmplot(x="total_bill",y="tip",
2           data=data,row="sex",
3           col="smoker")

 

結合我們的數據集,看上圖的橫縱座標就可以明白這兩個參數的用法

 

col_wrap:指定每行的列數,最多等於col參數所對應的不同類別的數量

1sns.lmplot(x="total_bill",y="tip",
2           data=data,col="day",
3           col_wrap=4

1sns.lmplot(x="total_bill",y="tip",
2           data=data,col="day",
3           col_wrap=2

 

aspect:控制圖的長寬比

1sns.lmplot(x="total_bill",y="tip",
2           data=data,aspect=1)
   #長度比寬度等於一比一,即正方形

1sns.lmplot(x="total_bill",y="tip",
2           data=data,aspect=1.5)  
3#長度比寬度等於1:1.5,可以看到橫軸更長一點

 

sharex:共享x軸刻度(默認爲True)

sharey:共享y軸刻度(默認爲True)

 

1sns.lmplot(x="total_bill",y="tip",
2           data=data,row="sex",
3           col="smoker",sharex=False4#可以看到設置爲False時,各個子圖的x軸的
5#座標刻度是不一樣的

 

 

hue:用於分類

 

1sns.lmplot(x="total_bill",y="tip",
2           data=data,hue="sex",
3           palette="husl"

 

 

ci:控制迴歸的置信區間(有學過統計學的同學們應該都是知道滴)

 

1sns.lmplot(x="total_bill",y="tip",
2           data=data,ci=0.95)
3#採用α=0.95的置信區間

 

x_jitter:給x軸隨機增加噪音點

y_jitter:給y軸隨機增加噪音點

設置這兩個參數不影響最後的迴歸直線

1sns.lmplot(x="size",y="tip",
2       data=data,x_jitter=False) 

1sns.lmplot(x="size",y="tip",
2        data=data,x_jitter=True) 
   #可以看到剛纔的一列一列的數據點被隨機
   #打亂了,但不會影響到最後的迴歸直線

 

order:控制進行迴歸的冪次(一次以上即是多項式迴歸)

1sns.lmplot(x="total_bill",y="tip",
2         data=data,order=1)
  #一元線性迴歸

1sns.lmplot(x="total_bill",y="tip",
2          data=data,order=2)
3#次數最高爲2

1sns.lmplot(x="total_bill",y="tip",
2          data=data,order=3)
3#次數最高爲3

還有一些參數涉及到了更深入的統計學知識,在這裏就不一一介紹了,有興趣的可以自行查看官方文檔!今天的演示就到此爲止! 

關注我的公衆號「Python讀財」,後臺回覆「py」即可獲取Python學習資源禮包
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章