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

Plotly子图:能否让单个子图占据多列或多行?

实现Plotly子图的自定义布局:两图并排+一图跨整行

这个布局完全可行,借助Plotly的make_subplots函数,通过配置网格规格(specs参数)就能轻松实现。核心是设置一个2行2列的基础网格,让第三个子图横跨2列即可。

具体实现代码示例

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# 定义子图网格规格:2行2列,第二行第一个子图跨2列
fig = make_subplots(
    rows=2, cols=2,
    specs=[
        [{"type": "scatter"}, {"type": "scatter"}],  # 第一行两个独立子图
        [{"type": "bar", "colspan": 2}, None]        # 第二行第一个子图占满整行,第二个位置留空
    ]
)

# 向子图中添加数据
# 第一行第一列子图
fig.add_trace(
    go.Scatter(x=[1,2,3], y=[4,5,6], name="子图1"),
    row=1, col=1
)

# 第一行第二列子图
fig.add_trace(
    go.Scatter(x=[1,2,3], y=[6,5,4], name="子图2"),
    row=1, col=2
)

# 第二行跨列子图
fig.add_trace(
    go.Bar(x=[1,2,3], y=[2,3,1], name="子图3"),
    row=2, col=1
)

# 调整整体布局样式
fig.update_layout(
    height=600,
    width=900,
    title_text="自定义子图布局效果",
    showlegend=True
)

fig.show()

关键参数说明

  • specs:二维列表,每个元素对应网格中的一个位置,通过colspan=2指定子图横跨的列数,对应的空白位置设为None即可。
  • 添加子图时,跨列的子图只需指定其起始列(col=1),Plotly会自动识别它占据的范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:10:09