Seaborn 統計關係

X與Y軸關係散佈圖

下載 Colab 同步學習

歡迎進入 Seaborn 的世界!在接下來的幾章我們將詳細介紹 seaborn 的各種圖形,Let’s go!

import pandas as pd
import seaborn as sns

csv_url = 'https://raw.githubusercontent.com/aicourse-org/dataset/main/titanic/titanic.csv'

df = pd.read_csv(csv_url)
df.sample(3)
survived pclass name sex age sibsp parch ticket fare cabin embarked
328 1 3 Goldsmith, Mrs. Frank John (Emily Alice Brown) female 31.0 1 1 363291 20.525 NaN S
365 0 3 Adahl, Mr. Mauritz Nils Martin male 30.0 0 0 C 7076 7.250 NaN S
372 0 3 Beavan, Mr. William Thomas male 19.0 0 0 323951 8.050 NaN S

我們繼續用鐵達尼號數據,唯一的不同就是導入 seaborn 數據庫: import seaborn as sns

X軸 與 Y軸

首先用 .replot() 查看 X軸 與 Y軸 的關係:

ax = sns.relplot(data=df, x='age', y='fare')

為了學習目的,我們將 fare 的範圍縮閜在 300 以下。

df_m = df[df['fare']<300]
ax = sns.relplot(data=df_m, x='age', y='fare')

新增圖層

我們可以透過參數 style 來顯示不同的樣式再加入一層數據。

ax = sns.relplot(data=df_m, x='age', y='fare', style='sex')

不過有時就像這個例子,數據過於密集無法有效的分辨樣式。最簡單的方式就是用參數 col 將圖分成兩列:

ax = sns.relplot(data=df_m, x='age', y='fare', col='sex')

也可以用顏色 hue 來顯示不同數據:

ax = sns.relplot(data=df_m, x='age', y='fare', hue='pclass')

如果 hue 所顯示的是非數字的類型數據,Seaborn 會自動選用反差較大的顏色。

ax = sns.relplot(data=df_m, x='age', y='fare', hue='survived')

在多次嘗試之後,我們使用以下的參數:

ax = sns.relplot(data=df_m, x='age', y='fare', col='pclass', hue='survived')

從結果大致可以觀察出 pclass=1 的存活率較其他艙位高。

最後,如果你還想再加入一層數據,可以考慮 size 藉由不同大小顯示數據。

ax = sns.relplot(data=df_m, x='age', y='fare', col='pclass', hue='survived', size='sex')

我們學會了 Seaborn 中基本的繪圖。下一章我們繼續使用 .replot() 來呈現時序相關資料。

v1.0

請告訴我們

請告訴我們您的問題或勘誤建議。
您的意見是我們前進的動力,非常感激!