seaborn.PairGrid#

class seaborn.PairGrid(data, *, hue=None, vars=None, x_vars=None, y_vars=None, hue_order=None, palette=None, hue_kws=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0.5, despine=True, dropna=False)#

用于绘制数据集中的成对关系的子图网格。

此对象将数据集中每个变量映射到多个轴网格中的一列和一行。可以使用不同的轴级绘图函数在上下三角形中绘制双变量图,并且可以将每个变量的边缘分布显示在对角线上。

使用pairplot(),在一行中生成几种不同的常用图。当您需要更多灵活性时,请使用PairGrid

有关更多信息,请参见教程

__init__(data, *, hue=None, vars=None, x_vars=None, y_vars=None, hue_order=None, palette=None, hue_kws=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0.5, despine=True, dropna=False)#

初始化绘图图形和 PairGrid 对象。

参数:
dataDataFrame

整洁(长格式)数据帧,其中每一列都是一个变量,每一行都是一个观察值。

hue字符串(变量名称)

data 中的变量,用于将绘图方面映射到不同的颜色。此变量将从默认的 x 和 y 变量中排除。

vars变量名称列表

data 中要使用的变量,否则使用所有具有数字数据类型的列。

{x, y}_vars变量名称列表

data 中要分别用于图形行和列的变量;即,创建非方形图。

hue_order字符串列表

调色板中色调变量级别的顺序

palette字典或 seaborn 调色板

用于映射hue 变量的颜色集。如果为字典,则键应为hue 变量中的值。

hue_kwsparam -> 值列表映射的字典

其他关键字参数,插入到绘图调用中,以便让其他绘图属性在色调变量的各个级别上变化(例如,散点图中的标记)。

corner布尔值

如果为 True,则不会将轴添加到网格的上(非对角线)三角形中,使其成为“角”图。

height标量

每个面的高度(以英寸为单位)。

aspect标量

宽高比 * 高度给出每个面的宽度(以英寸为单位)。

layout_pad标量

轴之间的填充;传递给fig.tight_layout

despine布尔值

从绘图中移除顶部和右侧的脊柱。

dropna布尔值

在绘制之前从数据中删除缺失值。

另请参见

pairplot

轻松绘制PairGrid 的常见用法。

FacetGrid

用于绘制条件关系的子图网格。

示例

调用构造函数将设置一个空白的子图网格,其中每一行和一列对应于数据集中一个数值变量

penguins = sns.load_dataset("penguins")
g = sns.PairGrid(penguins)
../_images/PairGrid_1_0.png

将双变量函数传递给PairGrid.map() 将在每个轴上绘制双变量图

g = sns.PairGrid(penguins)
g.map(sns.scatterplot)
../_images/PairGrid_3_0.png

将单独的函数传递给PairGrid.map_diag()PairGrid.map_offdiag() 将在对角线上显示每个变量的边缘分布。

g = sns.PairGrid(penguins)
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
../_images/PairGrid_5_0.png

也可以在图的上三角和下三角使用不同的函数(否则会冗余)。

g = sns.PairGrid(penguins, diag_sharey=False)
g.map_upper(sns.scatterplot)
g.map_lower(sns.kdeplot)
g.map_diag(sns.kdeplot)
../_images/PairGrid_7_0.png

或者完全避免冗余。

g = sns.PairGrid(penguins, diag_sharey=False, corner=True)
g.map_lower(sns.scatterplot)
g.map_diag(sns.kdeplot)
../_images/PairGrid_9_0.png

PairGrid 构造函数接受一个hue 变量。此变量直接传递给理解它的函数。

g = sns.PairGrid(penguins, hue="species")
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
g.add_legend()
../_images/PairGrid_11_0.png

但你也可以传递 matplotlib 函数,在这种情况下,内部会执行 groupby 并为每个级别绘制一个单独的图。

g = sns.PairGrid(penguins, hue="species")
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
g.add_legend()
../_images/PairGrid_13_0.png

通过在映射函数时直接传递数据向量,可以分配其他语义变量。

g = sns.PairGrid(penguins, hue="species")
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot, size=penguins["sex"])
g.add_legend(title="", adjust_subtitles=True)
../_images/PairGrid_15_0.png

当使用可以实现数值色调映射的 seaborn 函数时,你将需要禁用对角轴上变量的映射。请注意,hue 变量被排除在默认显示的变量列表之外。

g = sns.PairGrid(penguins, hue="body_mass_g")
g.map_diag(sns.histplot, hue=None, color=".3")
g.map_offdiag(sns.scatterplot)
g.add_legend()
../_images/PairGrid_17_0.png

vars 参数可用于精确控制使用哪些变量。

variables = ["body_mass_g", "bill_length_mm", "flipper_length_mm"]
g = sns.PairGrid(penguins, hue="body_mass_g", vars=variables)
g.map_diag(sns.histplot, hue=None, color=".3")
g.map_offdiag(sns.scatterplot)
g.add_legend()
../_images/PairGrid_19_0.png

绘图不必是正方形:可以使用单独的变量来定义行和列。

x_vars = ["body_mass_g", "bill_length_mm", "bill_depth_mm", "flipper_length_mm"]
y_vars = ["body_mass_g"]
g = sns.PairGrid(penguins, hue="species", x_vars=x_vars, y_vars=y_vars)
g.map_diag(sns.histplot, color=".3")
g.map_offdiag(sns.scatterplot)
g.add_legend()
../_images/PairGrid_21_0.png

探索对角线轴上多个分布的不同解决方法可能很有用。

g = sns.PairGrid(penguins, hue="species")
g.map_diag(sns.histplot, multiple="stack", element="step")
g.map_offdiag(sns.scatterplot)
g.add_legend()
../_images/PairGrid_23_0.png

方法

__init__(data, *[, hue, vars, x_vars, ...])

初始化绘图图形和 PairGrid 对象。

add_legend([legend_data, title, ...])

绘制图例,可能将其放置在轴外部并调整图形大小。

apply(func, *args, **kwargs)

将网格传递给用户提供的函数并返回自身。

map(func, **kwargs)

在每个子图中使用相同的函数绘制图形。

map_diag(func, **kwargs)

在每个对角线子图上使用单变量函数绘制图形。

map_lower(func, **kwargs)

在下对角线子图上使用双变量函数绘制图形。

map_offdiag(func, **kwargs)

在非对角线子图上使用双变量函数绘制图形。

map_upper(func, **kwargs)

在上对角线子图上使用双变量函数绘制图形。

pipe(func, *args, **kwargs)

将网格传递给用户提供的函数并返回其值。

savefig(*args, **kwargs)

保存绘图的图像。

set(**kwargs)

在每个子图 Axes 上设置属性。

tick_params([axis])

修改刻度、刻度标签和网格线。

tight_layout(*args, **kwargs)

在排除图例的矩形内调用 fig.tight_layout。

属性

fig

已弃用:首选 figure 属性。

figure

访问网格底层的 matplotlib.figure.Figure 对象。

legend

如果存在,则为 matplotlib.legend.Legend 对象。