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

如何在Plotly中使用for循环声明多个y轴

Plotly多Y轴循环配置解决方案

**kwargs是该场景的最优方案,完全不需要使用globals(),你想到的字典生成思路是完全可行的,只需调整格式即可直接使用。


原有写法错误原因

  • 你尝试的globals()写法本身不符合Python语法:不能在update_layout()的实参列表内直接写for循环,同时globals()是用来操作全局作用域变量的,和给Plotly方法传参没有关联,完全不需要在该场景使用
  • 你不需要修改任何trace相关代码,仅需预先生成匹配Plotly布局参数名的Y轴配置字典,再通过**运算符展开传入update_layout()即可

可运行的实现代码

import plotly.graph_objects as go

fig = go.Figure()

# Trace代码完全保留不修改
fig.add_trace(go.Scatter(
    x=[1, 2, 3],
    y=[4, 5, 6],
    name="yaxis1 data"
))
fig.add_trace(go.Scatter(
    x=[2, 3, 4],
    y=[40, 50, 60],
    name="yaxis2 data",
    yaxis="y2"
))
fig.add_trace(go.Scatter(
    x=[4, 5, 6],
    y=[40000, 50000, 60000],
    name="yaxis3 data",
    yaxis="y3"
))
fig.add_trace(go.Scatter(
    x=[5, 6, 7],
    y=[400000, 500000, 600000],
    name="yaxis4 data",
    yaxis="y4"
))

# 预定义每个Y轴的配置参数,索引对应轴序号
axis_config = [
    {}, # 索引0占位无意义
    {"color": "#1f77b4", "anchor": "x", "side": "left", "position": None},
    {"color": "#ff7f0e", "anchor": "free", "side": "left", "position": 0.15},
    {"color": "#d62728", "anchor": "x", "side": "right", "position": None},
    {"color": "#9467bd", "anchor": "free", "side": "right", "position": 0.85}
]

# 生成Y轴配置字典
y_axis_layout = {}
for i in range(1, 5):
    axis_key = "yaxis" if i == 1 else f"yaxis{i}"
    y_axis_layout[axis_key] = dict(
        title=f"yaxis{i} title",
        titlefont=dict(color=axis_config[i]["color"]),
        tickfont=dict(color=axis_config[i]["color"]),
        anchor=axis_config[i]["anchor"],
        overlaying="y",
        side=axis_config[i]["side"]
    )
    if axis_config[i]["position"]:
        y_axis_layout[axis_key]["position"] = axis_config[i]["position"]

# 用**展开字典传参
fig.update_layout(
    xaxis=dict(domain=[0.3, 0.7]),
    **y_axis_layout,
    title_text="multiple y-axes example",
    width=800
)

fig.show()

方案优势

该写法扩展性极强,后续如果需要新增Y轴,仅需在axis_config中新增对应配置项、修改循环的range上限即可,不需要调整任何trace代码。

内容的提问来源于stack exchange,提问作者Luis Enriquez-Contreras

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:42:01