我有一个带有 DateTimeIndex 和数字数据列的 pandas DataFrame,我使用 px.line
创建了一个折线图。我现在想突出显示线上的某些点,为此,我决定覆盖一个散点图,其行是初始 DataFrame 行的子集。
我尝试了类似 fig.add_trace(go.Scatter(x=df.index, y=df.col))
的操作,但这在我的折线图上创建了一条新线,而不是散点图。我还寻找了一个 graph_objects
函数来制作折线图,但找不到它。
我还观察到,虽然我可以使用 px.scatter
制作散点图(即,我看到一堆点而不是一条线),甚至可以将上述跟踪添加到空图仍然会创建折线图。也许这里的解决方案就像将正确的参数传递给 go.Scatter 来获取点而不是线一样简单,但我不确定那会是什么。
最佳答案
go.Scatter
的默认行为是添加标记和线条。
要仅绘制点,您可以将参数 mode='markers'
传递给 go.Scatter:
fig.add_trace(go.Scatter(x=df.index, y=df.col, mode='markers'))
例如:
df = px.data.stocks()
fig = px.line(df, x='date', y="GOOG")
df_highlighted = df.iloc[50:60]
fig.add_trace(go.Scatter(x=df_highlighted['date'], y=df_highlighted['GOOG'], mode='markers'))
关于Plotly:在同一个图中绘制直线和散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72538516/