Python 如何在散点图中显示非线性关系

Python 如何在散点图中显示非线性关系,python,matplotlib,curve-fitting,statsmodels,smoothing,Python,Matplotlib,Curve Fitting,Statsmodels,Smoothing,我想直观地探索两个变量之间的关系。这种关系的函数形式在密集散点图中不可见,如下所示: 如何在Python中向散点图添加lowess平滑? 或者您还有其他建议可以直观地探索非线性关系吗? 我尝试了以下方法,但没有正常工作(以中的一个示例为例): lowess平滑器(红线)很奇怪 编辑: 以下矩阵还包括lowess平滑器(取自CV): 有人有这样一个图形的代码吗?来自lowss文档: Definition: lowess(endog, exog, frac=0.6666666666666666

我想直观地探索两个变量之间的关系。这种关系的函数形式在密集散点图中不可见,如下所示:

如何在Python中向散点图添加lowess平滑?

或者您还有其他建议可以直观地探索非线性关系吗?

我尝试了以下方法,但没有正常工作(以中的一个示例为例):

lowess平滑器(红线)很奇怪

编辑:

以下矩阵还包括lowess平滑器(取自CV):


有人有这样一个图形的代码吗?来自
lowss
文档:

Definition: lowess(endog, exog, frac=0.6666666666666666, it=3, delta=0.0, is_sorted=False, missing='drop', return_sorted=True)

[...]

Parameters
----------
endog: 1-D numpy array
    The y-values of the observed points
exog: 1-D numpy array
    The x-values of the observed points
它接受其他顺序的参数。它不仅返回
y

>>> lowess(y, x)
array([[  0.00000000e+00,   1.13752478e+00],
       [  1.00000000e-02,   1.14087128e+00],
       [  2.00000000e-02,   1.14421582e+00],
       ..., 
       [  9.97000000e+00,  -5.17702654e-04],
       [  9.98000000e+00,  -5.94304755e-03],
       [  9.99000000e+00,  -1.13692896e-02]])
但是如果你打电话

ys = lowess(y, x)[:,1]
你应该看到类似的东西

您还可以使用:


简单易用!
ys = lowess(y, x)[:,1]
import numpy as np
import seaborn as sns

x = np.arange(0, 10, 0.01)
ytrue = np.exp(-x / 5) + 2 * np.sin(x / 3)
y = ytrue + np.random.normal(size=len(x))

sns.regplot(x, y, lowess=True)