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,则忽略。
参见
示例
方法
__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])使由这些索引标识的轴处于活动状态并返回它。
为每个方面生成名称索引和数据子集的生成器。
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对象。