Python教程 – seaborn函式庫教學(二) – 類別資料的視覺化

一.前言

在前一節的教學中,我們使用seaborn資料庫中的relplot函式繪製tips資料集中的變數關係,在這一節的教學中,我們將會側重在如何使用其他種類的圖形表現類別變數的關係。

二. 類別與數值資料

在這邊,我們將一個資料集的變量資料分為數值資料(連續資料)以及類別資料(離散),顧名思義,數值資料是描述那些可以用連續數字表達的變量,譬如說在上一教程所使用的 tips資料集,當次消費的總帳單(total_bill)、所給的小費(tip)便是數值資料。而另一方面,類別資料指得便是僅有數個類別的變量類型,譬如說是否抽煙(smoker)這個變數,基本上只會有Yes 以及 No兩個可能的數值,而其他像是sex、day以及time都是類別變數。 而由於類別資料只有有限的可能值的特性,使用上一個教程的繪製方式顯得不太合適,因此,下面將會使用針對類別資料的函式進行繪製。

三. catplot函式

在這邊,我們將使用catplot函式來視覺化類別變數的關係,首先,先讓我們載入seaborn函式庫並將tips這個資料集匯入。

[python]
import seaborn as sns
tips = sns.load_dataset("tips")
[/python]

假設我們對於帳單金額以及用餐是星期的那天之間的關係有興趣,則我們使用下列的指令。呼叫catplot函式,此函式根據類別將數值變量展現在同一張圖上面。詳細的函式說明可參考官方文檔

[python]
sns.catplot(x="day", y="total_bill", data=tips)
[/python]

首先,可以看到圖形根據不同的類別繪製出對應的總帳單金額的分佈圖,從這邊可以觀察到,似乎星期六的資料橫跨最廣的帳單金額分佈。而在每一個類別採取了類似散步圖表現方式,實際上,這個函式是集合數個原有函式的高級接口,在kind這個變數的預設值為’strip’,將會調用stripplot 這個函式進行繪製,假設我們不希望繪製出來的圖形裡面有重疊的點,我們可以將kind改為swarm,它會調整每一個行的表現方式,使得我們更容易觀察不同類別的資料分佈。

[python]
sns.catplot(x="day", y="total_bill",kind = 'swarm', data=tips)
[/python]

觀察這個圖形,除了發現星期六的資料分佈最廣之外,也可以看出總帳單的金額似乎也叫其他天來得高。

使用 hue來表現更複雜關係

跟上一個教程介紹的relplot函式相同,這邊依然可以hue控制圖的美學表現以達到更複雜的視覺化,舉例來說,在上面的圖形,我們加入探討性別(sex)這個變數的影響,則我們可以輸入下列的指令。

[python]
sns.catplot(x="day", y="total_bill", hue="sex", kind="swarm", data=tips)
[/python]

四. 小結

這邊使用了catplot這個高級接口來處理類別資料的繪製,其餘常見圖形,像是小提琴圖以及箱形圖也都可以從carplot裡面直接調用,詳細可以參閱官方文檔。

Share

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *