Seaborn.lmplot() 方法
Seaborn.lmplot() 方法用于绘制数据并在可以绘制多个图的网格上绘制回归模型拟合。
这个函数结合了 FacetGrid 和 regplot()。 该接口的目的是使跨数据集条件子集的拟合回归模型简单方便。
在考虑如何将变量分配给各个方面时,一种典型的方法是色调对最重要的比较有意义,然后是列和行。
语法
以下是 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()方法的部分参数如下 −
S.No | 参数及说明 |
---|---|
1 | x,y 这些参数将变量名称作为绘制长格式数据的输入。 |
2 | data 这是用于绘制图形的数据框。 |
3 | x_estimator 这是一个接受值并将向量映射到标量的可调用对象。 它是一个可选参数。 x 的每个不同值都应用于此函数,并绘制估计值作为结果。 当 x 是离散变量时,这很有用。 如果提供了 x_ci,这个估计将被引导并绘制一个置信区间。 |
4 | x_bins 此可选参数接受 int 或 vector 作为输入。 x 变量被分箱到离散箱中,然后估计集中趋势和置信区间。 |
5 | {x,y}_jitter 此可选参数接受浮点值。 将此大小的均匀随机噪声添加到 x 或 y 变量。 |
6 | color 用于指定单一颜色,该颜色应用于所有绘图元素。 |
7 | marker 这是用于在图表中绘制数据点的标记。 |
8 | x_ci 从 [0, 100] 或 None 中的 ci, "sd", int 取值。 这是一个可选参数。 绘制 x 的离散值的集中趋势时使用的置信区间的大小由传递给此参数的值决定。 |
9 | logx 采用布尔值,如果为 True,则在输入空间中绘制散点图和回归模型,同时还估计类型为 y log(x) 的线性回归。 为此,x 必须为正。 |
10 | hue,row,col 这些参数将字符串作为输入,这些变量定义了数据的子集,这些数据将绘制在网格的不同方面。 |
让我们在继续开发绘图之前加载 seaborn 库和数据集。
载入seaborn 库
要加载或导入 seaborn 库,可以使用以下代码行。
Import seaborn as sns
加载数据集
在本文中,我们将使用 seaborn 库中内置的 Titanic 数据集。 以下命令用于加载数据集。
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
我们在本文中使用了 titanic 数据集。 我们会将票价、年龄和等级列分别传递给 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() 方法在可能存在多个图的情况下绘制图形,即:当将色调语义映射应用于数据集时,绘制回归线。
示例 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.org/3.1.0/api/markers_api.html 用于不同种类的标记。)
输出
上面这行代码的情节如下 −
示例 3
在此示例中,我们将了解当将 col 值与 x、y 和 hue 参数一起传递给 lmplot() 方法时,绘图将如何变化。 由于我们使用的是 titanic 数据集,因此我们将 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 name、list 或 dict。 这些颜色用于色调变量的不同级别。
这些值应该是 color_palette() 可以解释的值,或者是将色相级别映射到 matplotlib 颜色的字典。 在下面的示例中,flare 被传递到调色板,并且可以在下面观察到获得的输出图。
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()
输出
得到的图如下,