Plotly 散点图趋势线出现在散点下方。如何让趋势线出现在散点图上? [Python]

Posted

技术标签:

【中文标题】Plotly 散点图趋势线出现在散点下方。如何让趋势线出现在散点图上? [Python]【英文标题】:Plotly scatterplot trendline appears under the scatter. How do I get the trendline to appear over the scatterplot? [Python] 【发布时间】:2021-07-04 09:41:23 【问题描述】:

我正在尝试为 Plotly 散点图绘制趋势线,但我不知道如何让趋势线出现在散点上方。以下是我使用的代码:

import plotly.express as px 
fig = px.scatter(df, x='Percentage_LIFT', y='Average_Daily_Contacts', 
                 title='Percent on LIFT vs Average Daily Contacts', 
                 trendline = "ols", trendline_color_override="red")
fig.show()

Here is the scatterplot the code produced:

如何让趋势线出现在散点上方?

【问题讨论】:

我的建议对你有什么效果? 不幸的是,它没有改变图表。我很欣赏这个建议!我最终使用 seaborn 来代替情节。 如果这没有改变图表,那么您将不得不分享您的数据样本,以使您提供的 sn-p 可重现。如果你觉得你已经解决了这个问题,你会考虑将我的建议标记为接受的答案吗? 【参考方案1】:

我在使用 px.scatter 时没有看到相同的行为。但是,只要您只有一条显示散点的轨迹和一条显示趋势线的轨迹,您就可以使用以下方法来切换数据在图形对象中出现的顺序:

fig.data = fig.data[::-1]

这会变成这样:

进入这个:

完整代码:

# imports
import pandas as pd
import plotly.express as px

# data
df = px.data.stocks()[['GOOG', 'AAPL']]

# your choices
target = 'GOOG'

# plotly
fig = px.scatter(df, 
                 x = target,
                 y = [c for c in df.columns if c != target],
                 template = 'plotly_dark',
                 trendline = 'ols',
                 title = "fig.update_traces(mode = 'lines')",
                 trendline_color_override='red')

fig.data = fig.data[::-1]
fig.show()

【讨论】:

以上是关于Plotly 散点图趋势线出现在散点下方。如何让趋势线出现在散点图上? [Python]的主要内容,如果未能解决你的问题,请参考以下文章

如何在散点图(plotly python)上保留重复值?

Plotly:在散点图分类轴上躲避重叠点

请问excel中如何将散点图拟合成公式呀?

如何使用 plotly 在散点图中显示第三个变量的第二个图例?

在散点图上叠加线函数 - seaborn

Plotly:在散点图中的数据点上显示列值