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

Plotly多X轴多Y轴绘图问题:仅显示一条迹线求助

Plotly双X双Y轴仅显示一条迹线的解决方法

问题出在你没有在布局中显式配置额外的X轴和Y轴,Plotly默认只会渲染主X轴(x)和主Y轴(y),其他未定义的轴对应的迹线会被隐藏。

修改后的代码如下:

import plotly.graph_objects as go

data_x1 = [0, 1, 2, 3, 4, 6, 10]
data_x2 = [0,10,20,30,40,60,100]
data_y1 = [0, 3555, 6114, 7395, 8016, 9130, 8646]
data_y2 = [1, 1.2, 1.18, 1.18, 1.22, 1.28, 1.52]

fig = go.Figure()
# 添加四条迹线并关联对应轴,添加name方便区分
fig.add_trace(go.Scatter(x=data_x1, y=data_y1, xaxis="x", yaxis="y", name="x1-y1"))
fig.add_trace(go.Scatter(x=data_x1, y=data_y2, xaxis="x", yaxis="y2", name="x1-y2"))
fig.add_trace(go.Scatter(x=data_x2, y=data_y1, xaxis="x2", yaxis="y", name="x2-y1"))
fig.add_trace(go.Scatter(x=data_x2, y=data_y2, xaxis="x2", yaxis="y2", name="x2-y2"))

# 配置布局,显式定义第二个X轴和Y轴
fig.update_layout(
    xaxis=dict(domain=[0, 0.9]),
    xaxis2=dict(
        anchor="y",
        side="top",
        overlaying="x",
        domain=[0, 0.9]
    ),
    yaxis=dict(domain=[0, 0.9]),
    yaxis2=dict(
        anchor="x",
        side="right",
        overlaying="y",
        domain=[0, 0.9]
    ),
    title="双X双Y轴绘图示例"
)

fig.show()

关键说明:

  • 必须在update_layout中定义xaxis2和yaxis2,指定它们的锚定轴、显示位置和覆盖关系,Plotly才会渲染这些轴及对应的迹线。
  • 你提到迹线1和3本应重叠,是因为data_x2的每个值都是data_x1的10倍,且二者的y值均为data_y1,所以在对应比例的位置会完全重合,这是正常现象。

内容的提问来源于stack exchange,提问作者basil_man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:30:52