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升级到最新稳定版试试。
代码检查重点
拿到你的代码后,重点核对以下片段:
- 双Y轴布局配置(Graph Objects示例):
fig.update_layout( yaxis=dict(title='Y轴1'), yaxis2=dict(title='Y轴2', overlaying='y', side='right') ) - 轨迹的标记点与轴绑定:
# 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系列' ) ) - 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
相关产品推荐
相关产品推荐

