seaborn.regplot#

seaborn.regplot(data=None, *, x=None, y=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, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker='o', scatter_kws=None, line_kws=None, ax=None)#

绘制数据和线性回归模型拟合。

有许多用于估计回归模型的相互排斥的选项。有关更多信息,请参见 教程

参数:
x, y:字符串、序列或向量数组

输入变量。如果为字符串,则应与 data 中的列名相对应。使用 pandas 对象时,轴将使用序列名称进行标记。

dataDataFrame

整齐(“长格式”)数据框,其中每列都是一个变量,每行都是一个观察结果。

x_estimator将向量映射到标量的可调用函数,可选

将此函数应用于 x 的每个唯一值并绘制所得估计值。当 x 是一个离散变量时,这很有用。如果提供了 x_ci,则将对该估计值进行自举,并绘制置信区间。

x_bins整数或向量,可选

x 变量划分为离散箱,然后估计中心趋势和置信区间。此箱装仅影响散点图的绘制方式;回归仍然适合原始数据。此参数被解释为均匀大小(不一定间距)箱的数量或箱中心的方位。使用此参数时,意味着 x_estimator 的默认值为 numpy.mean

x_ci“ci”、"sd"、[0, 100] 中的整数或 None,可选

在绘制离散 x 值的中心趋势时使用的置信区间大小。如果为“ci”,则使用 ci 参数的值。如果为“sd”,则跳过自举并显示每个箱中观察值的标准差。

scatter布尔值,可选

如果为 True,则绘制包含基础观察结果(或 x_estimator 值)的散点图。

fit_reg布尔值,可选

如果为 True,则估计并绘制一个回归模型,该模型将 xy 变量联系起来。

ci[0, 100] 中的整数或 None,可选

回归估计的置信区间大小。这将使用围绕回归线的半透明带绘制。置信区间使用自举估计;对于大型数据集,最好避免此计算,方法是将此参数设置为 None。

n_boot整数,可选

用于估计 ci 的自举重采样次数。默认值试图在时间和稳定性之间取得平衡;您可能希望为图的“最终”版本增加此值。

unitsdata 中的变量名,可选

如果 xy 观察结果嵌套在采样单元内,则可以在这里指定这些单元。这将在计算置信区间时被考虑在内,方法是执行一个多级自举,该自举对单元和观察结果(在单元内)进行重采样。这不会影响回归的估计或绘制方式。

seed整数、numpy.random.Generator 或 numpy.random.RandomState,可选

用于可重复自举的种子或随机数生成器。

order整数,可选

如果 order 大于 1,则使用 numpy.polyfit 来估计多项式回归。

logistic布尔值,可选

如果为 True,则假设 y 是一个二元变量,并使用 statsmodels 来估计逻辑回归模型。请注意,这比线性回归计算量大得多,因此您可能希望减少自举重采样次数 (n_boot) 或将 ci 设置为 None。

lowess布尔值,可选

如果为 True,则使用 statsmodels 来估计非参数 lowess 模型(局部加权线性回归)。请注意,目前无法为这种类型的模型绘制置信区间。

robust布尔值,可选

如果为 True,则使用 statsmodels 来估计稳健回归。这将降低异常值的权重。请注意,这比标准线性回归计算量大得多,因此您可能希望减少自举重采样次数 (n_boot) 或将 ci 设置为 None。

logx布尔值,可选

如果为 True,则估计形式为 y ~ log(x) 的线性回归,但在输入空间中绘制散点图和回归模型。请注意,x 必须为正值才能正常工作。

{x,y}_partialdata 中的字符串或矩阵

混杂变量,在绘制之前从 xy 变量中回归出来。

truncate布尔值,可选

如果为 True,则回归线受数据限制。如果为 False,则它延伸到 x 轴限制。

{x,y}_jitter浮点数,可选

xy 变量中添加此大小的均匀随机噪声。噪声是在拟合回归后添加到数据副本中的,只影响散点图的外观。当绘制取离散值的变量时,这可能会有所帮助。

label字符串

要应用于散点图或回归线的标签(如果 scatterFalse),用于图例。

colormatplotlib 颜色

应用于所有绘图元素的颜色;将被 scatter_kwsline_kws 中传递的颜色取代。

markermatplotlib 标记代码

用于散点图符号的标记。

{scatter,line}_kws字典

要传递给 plt.scatterplt.plot 的其他关键字参数。

axmatplotlib Axes,可选

要绘制图形的 Axes 对象,否则使用当前 Axes。

返回值:
axmatplotlib Axes

包含图形的 Axes 对象。

另请参见

lmplot

regplot()FacetGrid 组合起来,以在数据集中绘制多个线性关系。

jointplot

regplot()JointGrid(当与 kind="reg" 一起使用时)组合起来。

pairplot

regplot()PairGrid(当与 kind="reg" 一起使用时)组合起来。

residplot

绘制线性回归模型的残差。

注释

regplot()lmplot() 函数密切相关,但前者是轴级函数,而后者是图级函数,它结合了 regplot()FacetGrid

也很容易将 regplot()JointGridPairGrid 组合起来,通过 jointplot()pairplot() 函数,尽管它们不直接接受 regplot() 的所有参数。

示例

绘制 DataFrame 中两个变量之间的关系

sns.regplot(data=mpg, x="weight", y="acceleration")
../_images/regplot_1_0.png

拟合更高阶的多项式回归以捕获非线性趋势

sns.regplot(data=mpg, x="weight", y="mpg", order=2)
../_images/regplot_3_0.png

或者,拟合对数线性回归

sns.regplot(data=mpg, x="displacement", y="mpg", logx=True)
../_images/regplot_5_0.png

或使用局部加权(LOWESS)平滑器

sns.regplot(data=mpg, x="horsepower", y="mpg", lowess=True)
../_images/regplot_7_0.png

当响应变量为二元时,拟合逻辑回归

sns.regplot(x=mpg["weight"], y=mpg["origin"].eq("usa").rename("from_usa"), logistic=True)
../_images/regplot_9_0.png

拟合稳健回归以降低异常值的影响

sns.regplot(data=mpg, x="horsepower", y="weight", robust=True)
../_images/regplot_11_0.png

禁用置信区间以加快绘制速度

sns.regplot(data=mpg, x="weight", y="horsepower", ci=None)
../_images/regplot_13_0.png

x 变量为离散时,抖动散点图

sns.regplot(data=mpg, x="cylinders", y="weight", x_jitter=.15)
../_images/regplot_15_0.png

或汇总不同的 x

sns.regplot(data=mpg, x="cylinders", y="acceleration", x_estimator=np.mean, order=2)
../_images/regplot_17_0.png

对于连续的 x 变量,进行分箱,然后汇总

sns.regplot(data=mpg, x="weight", y="mpg", x_bins=np.arange(2000, 5500, 250), order=2)
../_images/regplot_19_0.png

自定义各种元素的外观

sns.regplot(
    data=mpg, x="weight", y="horsepower",
    ci=99, marker="x", color=".3", line_kws=dict(color="r"),
)
../_images/regplot_21_0.png