在 Python 中對 Seaborn 進行配對

Manav Narula 2024年2月15日
在 Python 中對 Seaborn 進行配對

在 Python 中,我們使用 seaborn 模組建立不同型別的圖形和繪圖來視覺化資料集。不同的函式建立不同型別的圖。有時單個圖可能不足以視覺化資料集,我們可能需要同時繪製多個圖。pairplot() 函式可以幫助解決這個問題。

本教程將介紹如何在 Python 中使用 seaborn 模組的 pairplot() 函式。

它基於 seaborn 中的 PairGrid 類並返回其型別的物件。它還在兩個軸上繪製資料的所有數字列,顯示不同圖的矩陣。它生成一個最終圖形,在對角線上有一個統一的圖形,在上下三角形上有一個不同的圖。

如果需要,我們可以使用 x_varsy_varspairplot() 函式中的 vars 引數指定要繪製的所需變數。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df)

seaborn 中的 pairplot

在上面的程式碼中,我們建立了一個 pairplot() 函式的簡單示例。請注意繪製在對角線上的不同圖形。

我們可以使用一些方法和引數來調整最終結果。hue 引數可用於繪製不同顏色的不同類別。palette 引數可以定義用於此的顏色。為所有圖形新增了一個通用圖例。我們可以在上面的例子中新增這個來區分這兩種產品。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df, hue="Product", palette="husl")

帶有色調引數的 seaborn 中的 pairplot

我們還可以控制在上下或三角形和對角線上繪製的圖形型別。diag_kind 引數用於指定對角線的圖,其餘的 kind 引數用於指定圖。它們的值可以是 regscatterkdehist 或其他一些圖。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)
sns.pairplot(df, hue="Product", diag_kind="hist", kind="scatter")

帶有 diag_kind 引數的 seaborn 中的 pairplot

為了自定義對角線上的各個圖,我們使用 plot_kwsdiag_kws 引數。我們將所需的自定義作為字典鍵值對傳遞。我們也可以使用 height 引數更改單個圖的高度。

此外,請記住它返回 PairGrid 類的物件,以使用該類中的方法自定義最終圖形。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn