seaborn.pairplot#

seaborn.pairplot(data, *, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind='scatter', diag_kind='auto', markers=None, height=2.5, aspect=1, corner=False, dropna=False, plot_kws=None, diag_kws=None, grid_kws=None, size=None)#

繪製資料集中成對的關係。

預設情況下,此函式將建立一個 Axes 網格,以便 data 中的每個數值變數將在單一行中跨 y 軸共用,並在單一列中跨 x 軸共用。對角線圖的處理方式不同:繪製單變數分佈圖以顯示每一列中資料的邊際分佈。

也可以顯示變數的子集,或在列和欄上繪製不同的變數。

這是 PairGrid 的高階介面,旨在輕鬆繪製一些常見的樣式。如果需要更多彈性,您應該直接使用 PairGrid

參數:
datapandas.DataFrame

整潔(長格式)資料框架,其中每一列是一個變數,每一列是一個觀察值。

huedata 中變數的名稱

data 中的變數,將繪圖外觀對應到不同的顏色。

hue_order字串列表

調色盤中色調變數的層級順序

palette字典或 seaborn 調色盤

用於對應 hue 變數的顏色集。如果是字典,則鍵應為 hue 變數中的值。

vars變數名稱列表

data 中要使用的變數,否則會使用每個具有數值資料類型的欄。

{x, y}_vars變數名稱列表

data 中要分別用於圖形的列和欄的變數;也就是說,要繪製非方形圖形。

kind{‘scatter’, ‘kde’, ‘hist’, ‘reg’}

要繪製的圖形種類。

diag_kind{‘auto’, ‘hist’, ‘kde’, None}

對角線子圖的繪圖種類。如果為 'auto',則會根據是否使用 hue 來選擇。

markers單一 matplotlib 標記碼或列表

用於所有散佈圖點的標記,或標記列表(其長度與色調變數中的層級數相同),以便不同顏色的點也會有不同的散佈圖標記。

height純量

每個分面的高度(以英寸為單位)。

aspect純量

長寬比 * 高度得出每個分面的寬度(以英寸為單位)。

corner布林值

如果為 True,則不會將軸新增到網格的上(非對角線)三角形,使其成為「角落」圖。

dropna布林值

在繪圖前從資料中刪除遺失值。

{plot, diag, grid}_kws字典

關鍵字參數的字典。plot_kws 傳遞給雙變數繪圖函數,diag_kws 傳遞給單變數繪圖函數,而 grid_kws 傳遞給 PairGrid 建構子。

回傳值:
gridPairGrid

回傳底層的 PairGrid 實例,以便進一步調整。

另請參閱

PairGrid

用於更彈性地繪製成對關係的子圖網格。

JointGrid

用於繪製兩個變數的聯合分佈和邊際分佈的網格。

範例

最簡單的調用方式是對變數的每個配對使用 scatterplot(),並對沿對角線的邊際圖使用 histplot()

penguins = sns.load_dataset("penguins")
sns.pairplot(penguins)
../_images/pairplot_1_0.png

指定 hue 變數會加入語義映射,並將預設的邊際圖變更為分層的核密度估計 (KDE)

sns.pairplot(penguins, hue="species")
../_images/pairplot_3_0.png

可以強制使用邊際直方圖

sns.pairplot(penguins, hue="species", diag_kind="hist")
../_images/pairplot_5_0.png

kind 參數決定對角線和非對角線的繪圖樣式。有多種選項可用,包括使用 kdeplot() 繪製 KDE

sns.pairplot(penguins, kind="kde")
../_images/pairplot_7_0.png

或使用 histplot() 繪製雙變數和單變數直方圖

sns.pairplot(penguins, kind="hist")
../_images/pairplot_9_0.png

markers 參數會在非對角線軸上套用樣式映射。目前,它會與 hue 變數重複

sns.pairplot(penguins, hue="species", markers=["o", "s", "D"])
../_images/pairplot_11_0.png

與其他圖表層級函數一樣,圖表的大小是由設定每個子圖的 height 來控制

sns.pairplot(penguins, height=1.5)
../_images/pairplot_13_0.png

使用 varsx_varsy_vars 來選取要繪製的變數

sns.pairplot(
    penguins,
    x_vars=["bill_length_mm", "bill_depth_mm", "flipper_length_mm"],
    y_vars=["bill_length_mm", "bill_depth_mm"],
)
../_images/pairplot_15_0.png

設定 corner=True 僅繪製下三角形

sns.pairplot(penguins, corner=True)
../_images/pairplot_17_0.png

plot_kwsdiag_kws 參數接受關鍵字參數的字典,以分別自訂非對角線和對角線圖表

sns.pairplot(
    penguins,
    plot_kws=dict(marker="+", linewidth=1),
    diag_kws=dict(fill=False),
)
../_images/pairplot_19_0.png

回傳物件是底層的 PairGrid,可以用於進一步自訂圖表

g = sns.pairplot(penguins, diag_kind="kde")
g.map_lower(sns.kdeplot, levels=4, color=".2")
../_images/pairplot_21_0.png