在 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