You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:18:32