Seaborn.lmplot() 方法



Seaborn.lmplot() 方法用于绘制数据并在网格上绘制回归模型拟合,其中可以绘制多个图。

此函数结合了 FacetGrid 和 regplot()。此接口的目的是使跨数据集的条件子集拟合回归模型变得简单方便。

在考虑如何将变量分配到各个方面时,一种典型的方法是:hue 适用于最重要的比较,其次是 col 和 row。

语法

以下是 seaborn.lmplot() 方法的语法:

seaborn.lmplot(*, x=None, y=None, data=None, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers='o', sharex=None, sharey=None, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, facet_kws=None, size=None)

参数

seaborn.lmplot() 方法的部分参数如下:

序号 参数和描述
1 x,y

这些参数接受变量名称作为输入,以绘制长格式数据。

2 data

这是用于绘制图形的数据框。

3 x_estimator

这是一个可调用的函数,它接受值并将向量映射到标量。这是一个可选参数。每个不同的 x 值都应用于此函数,并绘制估计值作为结果。当 x 是离散变量时,这很有用。如果提供了 x_ci,则此估计值将进行自举,并绘制置信区间。

4 x_bins

此可选参数接受整数或向量作为输入。x 变量被分成离散的箱,然后估计中心趋势和置信区间。

5 {x,y}_jitter

此可选参数接受浮点值。向 x 或 y 变量添加此大小的均匀随机噪声。

6 color

用于指定单一颜色,此颜色应用于所有绘图元素。

7 marker

这是用于在图形中绘制数据点的标记。

8 x_ci

接受来自 “ci”、“sd”、[0, 100] 中的整数或 None 的值。这是一个可选参数。

传递给此参数的值决定了在绘制离散 x 值的中心趋势时使用的置信区间的尺寸。

9 logx

接受布尔值,如果为 True,则在输入空间中绘制散点图和回归模型,同时还估计 y log(x) 类型的线性回归。为此有效,x 必须为正。

10 hue,row,col

这些参数接受字符串作为输入,这些变量定义将在网格的单独方面上绘制的数据子集。

在继续绘制图形之前,让我们加载 seaborn 库和数据集。

加载 seaborn 库

要加载或导入 seaborn 库,可以使用以下代码行。

Import seaborn as sns

加载数据集

在本文中,我们将使用 seaborn 库中内置的泰坦尼克号数据集。使用以下命令加载数据集。

titanic=sns.load_dataset("titanic")

以下命令用于查看数据集中前 5 行。这使我们能够理解可以使用哪些变量来绘制图形。

titanic.head()

以下是上述代码的输出。

index,survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone
0,0,3,male,22.0,1,0,7.25,S,Third,man,true,NaN,Southampton,no,false
1,1,1,female,38.0,1,0,71.2833,C,First,woman,false,C,Cherbourg,yes,false
2,1,3,female,26.0,0,0,7.925,S,Third,woman,false,NaN,Southampton,yes,true

现在我们已经加载了数据集,我们将探索一些示例。

示例 1

我们在本文中使用泰坦尼克号数据集。我们将 fare、age 和 class 列分别传递给 x、y 和 hue 参数。可以使用以下代码行来做到这一点。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.lmplot(x="fare", y="age", hue="class",data=titanic)
plt.show()

输出

生成的输出如下所示。

Seaborn lmplot method

正如回归图简介章节中所解释的,lmplot() 方法在可能绘制多个图的情况下绘制图形,即:当将 hue 语义映射应用于数据集时,会绘制回归线。

示例 2

在这个例子中,我们将看到 lmplot() 方法的 markers 参数的用法。此方法接受字符串列表或字符串作为输入,最终图形中绘制的观测值根据传递给此参数的字符串而定。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.lmplot(x="fare", y="age", hue="who",data=titanic,markers=["o", "x","*"])
plt.show()

(有关不同类型的标记,可以参考此 URL。

#https://matplotlib.net.cn/3.1.0/api/markers_api.html 用于不同类型的标记。)

输出

上述代码行的绘图如下:

lmplot method

示例 3

在这个例子中,我们将了解当 col 值与 x、y 和 hue 参数一起传递给 lmplot() 方法时,绘图将如何变化。由于我们使用的是泰坦尼克号数据集,因此我们将 age、fare、who 和 class 列分别传递给 x、y、hue 和 col 参数。可以使用以下代码行来做到这一点。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.lmplot(y="fare", x="age", hue="who",col="class",data=titanic)
plt.show()

输出

生成的输出图如下所示。

lmplot

示例 4

现在,我们将看到seaborn.lmplot() 方法中其他一些参数的用法。palette 参数接受 palette 名称、列表或字典作为值。这些颜色用于 hue 变量的不同级别。

这些值应该是 color_palette() 可以解释的值,或者是一个将 hue 级别映射到 matplotlib 颜色的字典。在下面的示例中,将 flare 传递给 palette,可以观察到获得的输出图。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.lmplot(y="fare", x="age", hue="who",col="class",row="alive",data=titanic,markers=["o", "x","*"],palette="flare")
plt.show()

输出

获得的图如下所示:

seaborn lmplot implot
seaborn_regression_plots_introduction.htm
广告