Plotly中能否通过trendline_options参数绘制多项式趋势线?
Plotly绘制多项式趋势线的方法
直接用trendline_options里没有专门指定多项式次数的参数,但可以通过自定义拟合公式结合trendline="ols"来实现多项式曲线拟合,具体操作如下:
- 借助
trendline_options的formula参数,写入符合statsmodels语法的多项式公式。比如二次多项式的公式为y ~ x + I(x**2),三次多项式则是y ~ x + I(x**2) + I(x**3)。这里的I()函数用来标记数学运算,避免被statsmodels误判为变量交互项。
以下是二次多项式拟合的示例代码:
import plotly.express as px df = px.data.gapminder(year=2007) fig = px.scatter(df, x="gdpPercap", y="lifeExp", trendline="ols", trendline_options=dict(formula='lifeExp ~ gdpPercap + I(gdpPercap**2)'), title="二次多项式趋势线拟合") fig.show()
如果需要更高次的多项式,只需要在formula中继续添加对应次数的项即可,比如三次多项式就追加+ I(gdpPercap**3)。
内容的提问来源于stack exchange,提问作者Alexander Mermelstein
相关产品推荐
相关产品推荐

