seaborn.FacetGrid#

class seaborn.FacetGrid(data, *, row=None, col=None, hue=None, col_wrap=None, sharex=True, sharey=True, height=3, aspect=1, palette=None, row_order=None, col_order=None, hue_order=None, hue_kws=None, dropna=False, legend_out=True, despine=True, margin_titles=False, xlim=None, ylim=None, subplot_kws=None, gridspec_kws=None)[源代码]#

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

__init__(data, *, row=None, col=None, hue=None, col_wrap=None, sharex=True, sharey=True, height=3, aspect=1, palette=None, row_order=None, col_order=None, hue_order=None, hue_kws=None, dropna=False, legend_out=True, despine=True, margin_titles=False, xlim=None, ylim=None, subplot_kws=None, gridspec_kws=None)[源代码]#

初始化 matplotlib 图形和 FacetGrid 对象。

此类将数据集映射到多个轴上,这些轴排列成行和列的网格,对应于数据集中变量的*级别*。它生成的图表通常被称为“网格”、“格子”或“小倍数”图形。

它还可以通过 hue 参数表示第三个变量的层次,该参数以不同颜色绘制数据的不同子集。这使用颜色来解析第三维度上的元素,但仅将子集相互叠加,不会像接受 hue 的轴级函数那样为特定可视化定制 hue 参数。

基本工作流程是使用数据集和用于构建网格的变量初始化 FacetGrid 对象。然后可以通过调用 FacetGrid.map()FacetGrid.map_dataframe() 将一个或多个绘图函数应用于每个子集。最后,可以使用其他方法调整图表,例如更改轴标签、使用不同的刻度或添加图例。有关更多信息,请参见下面的详细代码示例。

警告

在使用从数据集中推断语义映射的seaborn函数时,必须注意在各个方面(例如,通过使用调色板字典定义 hue 映射或设置变量的数据类型为 category)同步这些映射。在大多数情况下,使用图级函数(例如 relplot()catplot())会比直接使用 FacetGrid 更好。

更多信息请参见 教程

参数:
数据DataFrame

Tidy(“长格式”)数据框,其中每一列是一个变量,每一行是一个观察值。

行, 列, 色调字符串

定义数据子集的变量,这些子集将在网格中的单独面中绘制。请参阅 {var}_order 参数以控制此变量级别的顺序。

col_wrap整数

在此宽度处“包裹”列变量,以便列分面跨越多行。与 row 分面不兼容。

share{x,y}布尔值, ‘列’, 或 ‘行’ 可选

如果为真,面将共享列之间的y轴和/或行之间的x轴。

高度标量

每个分面的高度(以英寸为单位)。另见:aspect

方面标量

每个面的宽高比,使得 aspect * height 给出每个面在英寸中的宽度。

调色板调色板名称、列表或字典

用于 hue 变量不同级别的颜色。应该是可以被 color_palette() 解释的内容,或者是一个将色调级别映射到 matplotlib 颜色的字典。

{row,col,hue}_order列表

分面变量的级别顺序。默认情况下,这将是级别在 data 中出现的顺序,或者如果变量是 pandas 分类变量,则是分类顺序。

hue_kws参数 -> 值列表映射的字典

其他关键字参数,用于插入到绘图调用中,以使其他绘图属性随色调变量的级别而变化(例如,散点图中的标记)。

legend_out布尔

如果 True ,图形尺寸将被扩展,图例将在图的右中位置绘制在图外。

去枝布尔

从图表中移除顶部和右侧的轴线。

margin_titles布尔

如果 True,行变量的标题将绘制在最后一列的右侧。此选项是实验性的,可能在所有情况下都无法正常工作。

{x, y}lim: 元组

每个分面中每个轴的限制(仅在 share{x, y} 为 True 时相关)。

subplot_kwsdict

传递给 matplotlib 子图方法的关键字参数字典。

gridspec_kwsdict

传递给 matplotlib.gridspec.GridSpec 的关键字参数字典(通过 matplotlib.figure.Figure.subplots())。如果 col_wrap 不是 None,则忽略。

参见

PairGrid

用于绘制成对关系的子图网格

relplot

结合关系图和 FacetGrid

displot

结合分布图和 FacetGrid

catplot

结合一个分类图和一个 FacetGrid

lmplot

结合回归图和 FacetGrid

示例

备注

这些示例使用 seaborn 函数来展示该类的一些高级功能,但在大多数情况下,您会希望使用图级函数(例如 displot()relplot())来制作此处显示的图表。

方法

__init__(data, *[, row, col, hue, col_wrap, ...])

初始化 matplotlib 图形和 FacetGrid 对象。

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

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

apply(func, *args, **kwargs)

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

despine(**kwargs)

从分面中移除轴脊。

facet_axis(row_i, col_j[, modify_state])

使由这些索引标识的轴处于活动状态并返回它。

facet_data()

为每个方面生成名称索引和数据子集的生成器。

map(func, *args, **kwargs)

将绘图函数应用于数据的每个分面的子集。

map_dataframe(func, *args, **kwargs)

类似于 .map ,但将参数作为字符串传递,并在 kwargs 中插入数据。

pipe(func, *args, **kwargs)

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

refline(*[, x, y, color, linestyle])

为每个方面添加引用行。

savefig(*args, **kwargs)

保存图形的图像。

set(**kwargs)

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

set_axis_labels([x_var, y_var, clear_inner])

在网格的左侧列和底部行设置轴标签。

set_titles([template, row_template, ...])

在每个分面上方或网格边缘绘制标题。

set_xlabels([label, clear_inner])

在网格的底部行标记x轴。

set_xticklabels([labels, step])

设置网格的x轴刻度标签。

set_ylabels([label, clear_inner])

在网格的左侧列上标记y轴。

set_yticklabels([labels])

在网格的左侧列设置y轴刻度标签。

tick_params([axis])

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

tight_layout(*args, **kwargs)

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

属性

ax

当没有分配分面变量时,使用 matplotlib.axes.Axes

axes

网格中 matplotlib.axes.Axes 对象的数组。

axes_dict

一个将分面名称映射到相应的 matplotlib.axes.Axes 的字典。

fig

首选 figure 属性。

figure

访问网格背后的 matplotlib.figure.Figure 对象。

legend

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