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

Plotly双Y轴异常:Y轴1标记点不显示但注释正常

Plotly双Y轴标记点显示异常排查

核心排查方向

  • 轨迹与Y轴绑定错误:不管用Plotly Express还是Graph Objects,必须明确指定每个轨迹对应的Y轴。用Express时,通过secondary_y参数区分;用Graph Objects时,要给轨迹设置yaxis='y'(对应Y轴1)或yaxis='y2'(对应Y轴2),同时布局里要正确配置双Y轴的overlaying属性。
  • 标记点模式未开启:检查轨迹的mode参数是否包含markers,比如mode='markers+text'才会同时显示标记点和注释,只写text的话只会显示注释。
  • Y轴范围截断标记点:查看Y轴1的range设置,如果手动指定了范围,可能把标记点的数值排除在外,导致看不到。可以尝试去掉手动范围设置,让Plotly自动适配。
  • 样式冲突导致视觉隐藏:比如标记点颜色和背景色一致,或者marker.size设为0,检查marker相关属性的配置。
  • 版本bug:旧版Plotly对双Y轴标记点的渲染存在问题,执行pip install --upgrade plotly升级到最新稳定版试试。

代码检查重点

拿到你的代码后,重点核对以下片段:

  1. 双Y轴布局配置(Graph Objects示例):
    fig.update_layout(
        yaxis=dict(title='Y轴1'),
        yaxis2=dict(title='Y轴2', overlaying='y', side='right')
    )
    
  2. 轨迹的标记点与轴绑定:
    # Y轴1轨迹,必须包含markers模式
    fig.add_trace(
        go.Scatter(
            x=x1, y=y1,
            mode='markers+text',
            marker=dict(size=12, color='#2ecc71'),
            yaxis='y',
            name='Y轴1系列'
        )
    )
    
  3. Plotly Express写法的secondary_y设置:
    fig = px.line(df, x='date', y=['y1', 'y2'], secondary_y=['y2'])
    # 给Y轴1的轨迹添加标记点
    fig.update_traces(mode='markers+text', selector=dict(secondary_y=False))
    

内容的提问来源于stack exchange,提问作者Vénon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:39:59