Python/Plotly: 如何从 LOWESS 线打印 y 趋势值?

Python/Plotly: How to print y-trend values from LOWESS line?

这是我使用 Plotly lib 时 LOWESS Smoothing 片段的样子:

现在,我知道如果我将鼠标悬停在线条上,使用 Plotly 它会为我提供 y 趋势值:

问题:我不知道如何打印出这些趋势值。

我知道有一个函数 px.get_trendline_results(forecast_fig) 但它没有为我打印任何内容...

非常感谢您的帮助!

今天这些值不可用,但它们可能会在未来的版本中可用! get_trendline_result 没有结果的原因是 LOWESS 没有底层模型,它只是一种平均值。

在幕后,Plotly Express 使用 statsmodels 库生成 LOWESS 曲线,因此您现在可以 运行 在 PX 之外进行相同的分析。

这是 PX 使用的代码:https://github.com/plotly/plotly.py/blob/3ca829c73bd4841666c8b810f5e8457514eb3c99/packages/python/plotly/plotly/express/_core.py#L232

如果你想查询图中的实际值,并且你没有映射到 colorsymbol 那么你可以这样做:

import plotly.express as px
df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", trendline="lowess")
print(fig.data[1].y)

但如果您设置了 color,那么 fig.data[ <index> ] 中的实际跟踪索引会有所不同,因此这非常脆弱。