seaborn.objects.Plot.pair#

Plot.pair(x=None, y=None, wrap=None, cross=True)#

通过配对多个 x 和/或 y 变量来生成子图。

参数:
x, y数据向量或标识符的序列

将定义子图网格的变量。

wrapint

当只使用 xy 时,将子图跨越具有此列数(当使用 x 时)或行数(当使用 y 时)的二维网格。

crossbool

当为 False 时,将 xy 列表压缩,以便第一个子图获得第一对,第二个子图获得第二对,等等。否则,从列表的笛卡尔积创建二维网格。

示例

通过分配 y 并对 x 进行配对,将一个因变量绘制到多个自变量上。

(
    so.Plot(mpg, y="acceleration")
    .pair(x=["displacement", "weight"])
    .add(so.Dots())
)
../_images/objects.Plot.pair_2_0.png

通过将列表传递给 xy,显示多个成对关系。

(
    so.Plot(mpg)
    .pair(x=["displacement", "weight"], y=["horsepower", "acceleration"])
    .add(so.Dots())
)
../_images/objects.Plot.pair_4_0.png

当为 xy 都提供列表时,传递 cross=False 来配对列表中的每个位置,而不是显示所有成对关系。

(
    so.Plot(mpg)
    .pair(
        x=["weight", "acceleration"],
        y=["displacement", "horsepower"],
        cross=False,
    )
    .add(so.Dots())
)
../_images/objects.Plot.pair_6_0.png

当针对多个 xy 变量进行绘制时,可以 wrap 子图以生成二维网格。

(
    so.Plot(mpg, y="mpg")
    .pair(x=["displacement", "weight", "horsepower", "cylinders"], wrap=2)
    .add(so.Dots())
)
../_images/objects.Plot.pair_8_0.png

配对可以与分面结合使用,要么对 y 进行配对,并在 col 上进行分面,要么对 x 进行配对,并在 row 上进行分面。

(
    so.Plot(mpg, x="weight")
    .pair(y=["horsepower", "acceleration"])
    .facet(col="origin")
    .add(so.Dots())
)
../_images/objects.Plot.pair_10_0.png

虽然通常将配对变量分配为对通用 data 的引用很方便,但也可以传递向量列表。

(
    so.Plot(mpg["weight"])
    .pair(y=[mpg["horsepower"], mpg["acceleration"]])
    .add(so.Dots())
)
../_images/objects.Plot.pair_12_0.png

当通过诸如 Plot.label()Plot.limit()Plot.scale() 这样的方法自定义绘图时,可以将各个坐标变量称为 x0x1 等。

(
    so.Plot(mpg, y="mpg")
    .pair(x=["weight", "displacement"])
    .label(x0="Weight (lb)", x1="Displacement (cu in)", y="MPG")
    .add(so.Dots())
)
../_images/objects.Plot.pair_14_0.png