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

Plotly子图绘制疑问:如何将含多trace的图表完整导入子图

Plotly子图导入多Trace图表的解决方法

要把p2(多trace折线填充图)和p3(分组柱状图)的所有元素都导入子图,核心是遍历两个图表的完整trace列表,而非仅取单条data[0],具体步骤如下:

实现步骤

  1. 生成两个独立的Plotly图表对象
    先调用你的函数生成包含所有trace的图表:

    fig_p2 = p2()  # 含多条trace的折线填充图
    fig_p3 = p3()  # 分组柱状图
    
  2. 创建子图框架
    根据需求定义子图的行列布局,比如2行1列:

    from plotly.subplots import make_subplots
    fig = make_subplots(rows=2, cols=1, subplot_titles=("折线填充图", "分组柱状图"))
    
  3. 批量添加所有trace
    遍历两个图表的data列表(每个元素对应一条trace),逐个添加到子图的指定位置:

    # 添加p2的所有trace到第1行第1列
    for trace in fig_p2.data:
        fig.add_trace(trace, row=1, col=1)
    
    # 添加p3的所有trace到第2行第1列
    for trace in fig_p3.data:
        fig.add_trace(trace, row=2, col=1)
    
  4. 保留原图表的轴样式(可选)
    如果需要保留原图表的轴标签、刻度等设置,可将原布局的轴属性复制到子图对应位置:

    # 同步p2的轴设置
    fig.update_xaxes(fig_p2.layout.xaxis, row=1, col=1)
    fig.update_yaxes(fig_p2.layout.yaxis, row=1, col=1)
    
    # 同步p3的轴设置
    fig.update_xaxes(fig_p3.layout.xaxis, row=2, col=1)
    fig.update_yaxes(fig_p3.layout.yaxis, row=2, col=1)
    
  5. 调整整体布局并展示

    fig.update_layout(height=700, width=900, title_text="组合子图")
    fig.show()
    

关键说明

Plotly的Figure.data是一个列表类型,每个元素对应一条独立的trace(比如折线填充图的每条线、分组柱状图的每组柱子)。之前仅取data[0]只会导入第一条trace,遍历整个列表才能完整导入所有元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:51:12