在 Python 中對 Seaborn 進行配對
在 Python 中,我們使用 seaborn 模組建立不同型別的圖形和繪圖來視覺化資料集。不同的函式建立不同型別的圖。有時單個圖可能不足以視覺化資料集,我們可能需要同時繪製多個圖。pairplot()
函式可以幫助解決這個問題。
本教程將介紹如何在 Python 中使用 seaborn 模組的 pairplot()
函式。
它基於 seaborn 中的 PairGrid
類並返回其型別的物件。它還在兩個軸上繪製資料的所有數字列,顯示不同圖的矩陣。它生成一個最終圖形,在對角線上有一個統一的圖形,在上下三角形上有一個不同的圖。
如果需要,我們可以使用 x_vars
、y_vars
或 pairplot()
函式中的 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)
在上面的程式碼中,我們建立了一個 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")
我們還可以控制在上下或三角形和對角線上繪製的圖形型別。diag_kind
引數用於指定對角線的圖,其餘的 kind
引數用於指定圖。它們的值可以是 reg
、scatter
、kde
、hist
或其他一些圖。
例如,
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")
為了自定義對角線上的各個圖,我們使用 plot_kws
和 diag_kws
引數。我們將所需的自定義作為字典鍵值對傳遞。我們也可以使用 height
引數更改單個圖的高度。
此外,請記住它返回 PairGrid
類的物件,以使用該類中的方法自定義最終圖形。
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