Skip to content

seaborn.relplot

译者:Stuming

seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=None, dashes=None, style_order=None, legend='brief', kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)

绘制相关关系图像到 FacetGrid 的图像级别接口。

此函数提供对一些不同轴级别函数的访问,这些函数通过子集的语义映射显示两个变量之间的关系。kind参数选择要使用的基础轴级函数: * scatterplot() (通过kind="scatter"访问;默认为此) * lineplot() (通过kind="line"访问)

额外的关键字参数会被传递给隐含的函数,因此使用时应当参考对应函数的文档去了解各种选项。

对于数据不同子集的xy的绘制关系可以通过hue, size以及style参数控制。这些参数控制使用哪些视觉语义来区分不同的子集。使用所有三个语义类型可以独立展示三个维度,但是这种方式得到的绘制结果难以被理解而且低效。使用多种语义(例如对相同变量同时使用huestyle)可以使图像更加易懂。

参考tutorial获得更多信息。

绘制后,会返回带有图像的FacetGrid,随后可以直接进行图像细节调节或者加入其他图层。

值得注意的是,与直接使用隐含函数的方式不同,数据必须以长格式的 DataFrame 传入,同时变量通过x, y及其他参数指定。

参数:x, ydata中的变量名

输入数据的变量;数据必须为数值型。

hue: data中的名称,可选

将会产生具有不同颜色的元素的变量进行分组。这些变量可以是类别变量或者数值型变量,尽管颜色映射在后面的情况中会有不同的表现。

sizedata中的名称,可选

将会产生具有不同尺寸的元素的变量进行分组。这些变量可以是类别变量或者数值型变量,尽管尺寸映射在后面的情况中会有不同的表现。

styledata中的名称,可选

将会产生具有不同风格的元素的变量进行分组。这些变量可以为数值型,但是通常会被当做类别变量处理。

data:DataFrame

长格式的 DataFrame,每列是一个变量,每行是一个观察值。

row, coldata中的变量名,可选

确定网格的分面的类别变量。

col_wrap:int, 可选

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

row_order, col_order:字符串列表,可选

以此顺序组织网格的行和/或列,否则顺序将从数据对象中推断。

palette:色盘名,列表,或者字典,可选

用于hue变量的不同级别的颜色。应当是color_palette()可以解释的东西,或者将色调级别映射到 matplotlib 颜色的字典。

hue_order:列表,可选

指定hue变量层级出现的顺序,否则会根据数据确定。当hue变量为数值型时与此无关。

hue_norm:元组或者 Normalize 对象,可选

hue变量为数值型时,用于数据单元的 colormap 的标准化。如果hue为类别变量则与此无关。

sizes:列表、典或者元组,可选

当使用sizes时,用于确定如何选择尺寸。此变量可以一直是尺寸值的列表或者size变量的字典映射。当size为数值型时,此变量也可以是指定最小和最大尺寸的元组,这样可以将其他值标准化到这个范围。

size_order:列表,可选

指定size变量层次的表现顺序,不指定则会通过数据确定。当size变量为数值型时与此无关。

size_norm:元组或者 Normalize 对象,可选

size变量为数值型时,用于数据单元的 scaling plot 对象的标准化。

legend:“brief”, “full”, 或者 False, 可选

用于决定如何绘制坐标轴。如果参数值为“brief”, 数值型的hue以及size变量将会被用等间隔采样值表示。如果参数值为“full”, 每组都会在坐标轴中被记录。如果参数值为“false”, 不会添加坐标轴数据,也不会绘制坐标轴。

kind:string, 可选

绘制图的类型,与 seaborn 相关的图一致。可选项为(scatterline).

height:标量, 可选

每个 facet 的高度(英寸)。参见aspect

aspect:标量, 可选

每个 facet 的长宽比,因此“长宽比*高度”可以得出每个 facet 的宽度(英寸)。

facet_kws:dict, 可选

以字典形式传给FacetGrid的其他关键字参数.

kwargs:键值对

传给后续绘制函数的其他关键字参数。

返回值:gFacetGrid

返回包含图像的FacetGrid对象,图像可以进一步调整。

示例

使用FacetGrid的坐标轴布局绘制简单的 facet。

>>> import seaborn as sns
>>> sns.set(style="ticks")
>>> tips = sns.load_dataset("tips")
>>> g = sns.relplot(x="total_bill", y="tip", hue="day", data=tips)

http://seaborn.pydata.org/_images/seaborn-relplot-1.png

利用其他变量绘制 facet:

>>> g = sns.relplot(x="total_bill", y="tip",
...                 hue="day", col="time", data=tips)

http://seaborn.pydata.org/_images/seaborn-relplot-2.png

绘制两行两列的 facet:

>>> g = sns.relplot(x="total_bill", y="tip", hue="day",
...                 col="time", row="sex", data=tips)

http://seaborn.pydata.org/_images/seaborn-relplot-3.png

将多行 facets 转换为多列:

>>> g = sns.relplot(x="total_bill", y="tip", hue="time",
...                 col="day", col_wrap=2, data=tips)

http://seaborn.pydata.org/_images/seaborn-relplot-4.png

利用指定的属性值对每个 facet 使用多种语义变量:

>>> g = sns.relplot(x="total_bill", y="tip", hue="time", size="size",
...                 palette=["b", "r"], sizes=(10, 100),
...                 col="time", data=tips)

http://seaborn.pydata.org/_images/seaborn-relplot-5.png

使用不同类型的图:

>>> fmri = sns.load_dataset("fmri")
>>> g = sns.relplot(x="timepoint", y="signal",
...                 hue="event", style="event", col="region",
...                 kind="line", data=fmri)

http://seaborn.pydata.org/_images/seaborn-relplot-6.png

改变每个 facet 的大小:

>>> g = sns.relplot(x="timepoint", y="signal",
...                 hue="event", style="event", col="region",
...                 height=5, aspect=.7, kind="line", data=fmri)

http://seaborn.pydata.org/_images/seaborn-relplot-7.png



回到顶部