- Seaborn 教程
- Seaborn - 首页
- Seaborn - 简介
- Seaborn - 环境设置
- 导入数据集和库
- Seaborn - 图表美学
- Seaborn - 调色板
- Seaborn - 直方图
- Seaborn - 核密度估计
- 可视化成对关系
- Seaborn - 绘制分类数据
- 观测值的分布
- Seaborn - 统计估计
- Seaborn - 绘制宽格式数据
- 多面板分类图
- Seaborn - 线性关系
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函数参考
- Seaborn - 函数参考
- Seaborn 有用资源
- Seaborn - 快速指南
- Seaborn - 有用资源
- Seaborn - 讨论
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()
输出
生成的输出如下所示。
正如回归图简介章节中所解释的,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 用于不同类型的标记。)
输出
上述代码行的绘图如下:
示例 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()
输出
生成的输出图如下所示。
示例 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()
输出
获得的图如下所示: