在 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