Plotly如何在同一画布中叠加折线图与高亮散点
解决方法
plotly.graph_objects 模块没有单独拆分折线、散点的绘制接口,两种图形都通过 go.Scatter 实现,靠 mode 参数控制渲染形态。该参数默认值为 lines,因此直接调用时会生成连线,这就是你添加轨迹后出现额外折线的原因。
要渲染为无连线的纯散点,只需要在调用 go.Scatter 时传入 mode='markers' 即可。参考代码如下:
# 原有px.line生成的基础折线图 fig = px.line(df, x=df.index, y='col') # 提取需要高亮的点子集 highlight_df = df[# 填入你的点位筛选条件] # 叠加散点高亮层 fig.add_trace( go.Scatter( x=highlight_df.index, y=highlight_df['col'], mode='markers', # 核心配置:仅渲染离散点 marker={ 'size': 9, # 调大尺寸突出高亮 'color': '#ff4b4b', # 设置和原折线区分的高亮色 'line': {'width': 1, 'color': 'white'} # 可选:给点加白边更醒目 }, name='高亮点位' ) ) fig.show()
常用
mode取值说明 你可以根据实际需求选择或组合渲染模式:
lines:默认值,仅绘制连线,对应纯折线效果markers:仅绘制离散标记点,对应纯散点效果text:仅显示配置的文本标签- 组合传参:比如传入
lines+markers会同时绘制连线和数据点,传入markers+text会在散点旁显示自定义文本标注
注:你之前用
px.scatter能正常生成纯散点,本质是plotly express做了一层封装,自动给底层的go.Scatter设置了mode='markers',和手动传参的底层逻辑完全一致。
内容的提问来源于stack exchange,提问作者danben
相关产品推荐
相关产品推荐

