如何在 Python 中使用 Plotly 在同一张图上绘制散点图和线图?

How to plot a scatter plot and a line plot on the same graph using Plotly in Python?

我最近开始使用 plotly 并且非常喜欢它,所以我尝试在我做的每个项目中使用它。

使用 matplotlib 我可以使用下面的代码在同一张图上绘制线图和散点图。

plt.figure(figsize = (20,5))
plt.scatter(x, y)
plt.plot(x, y_pred, color = "r")
plt.show()

plotly.express 内的 scatter 函数中使用 trendline 参数,我可以通过散点绘制一条 最适合 的线,但我不想这样,因为我正在尝试演示如何计算该线。

提前感谢您的帮助!

您可以在创建散点图后使用 fig.add_shape,如下所示:

fig.add_shape(
    type="line",
    x0=0,
    y0=0,
    x1=10,
    y1=10,
    line=dict(width=1, dash="dash"),
)

使用相同定义的数组/列表,x, y, y_pred。一种等效的方法是使用 Plotly Express 创建图形,然后向其添加其他轨迹。

import pandas as pd
import numpy as np
import plotly.express as px

x = np.linspace(1, 20, 16)
y = np.random.uniform(1, 6, 16)
y_pred = y * 1.1

fig = px.scatter(x=x, y=y, color_discrete_sequence=["yellow"])
fig.add_traces(px.line(x=x, y=y_pred, color_discrete_sequence=["red"]).data)