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

设置margin为0仍有底部多余空白?如何解决Plotly Graph Objects表格留白问题

消除Plotly表格底部多余空白的方案

空白产生的本质原因

哪怕将布局的上下左右边距、内边距全部设为0,Plotly的Figure画布默认仍会保留固定的纵向显示高度,而go.Table组件本身不会自动撑满整个画布的纵向空间,底部的大面积多余空白,就是画布预留的、未被表格占用的冗余区域。

自适应实现方法

不要采用手动设置静态height的方式,改为根据表格实际内容动态计算所需画布高度,即可实现表格尺寸随数据集行数自动适配,彻底消除底部冗余空白。
具体实现逻辑:

  • 提前设定好固定的表头行高、单元格单一行高,保证每行尺寸可控
  • 按照总高度 = 表头行高 + 数据行数 × 单元格单一行高 的公式,动态计算整个画布需要的高度值
  • 将计算得到的高度值赋值给布局的height参数

修改后的可运行代码

import plotly.graph_objects as go

# 自定义表格单一行高,可根据字体大小、内容多少调整数值
HEADER_HEIGHT = 40
CELL_HEIGHT = 30

# 示例数据集(可替换为动态读取的业务数据集)
header_content = ['A Scores', 'B Scores']
cell_content = [[100, 90, 80, 90], [95, 85, 75, 95]]
# 自动读取数据集的总行数
total_row = len(cell_content[0])

# 动态计算画布总高度,保证完全匹配表格实际尺寸
canvas_height = HEADER_HEIGHT + total_row * CELL_HEIGHT

layout = go.Layout(
    height=canvas_height,
    margin=go.layout.Margin(
        l=0,
        r=0,
        b=0,
        t=0,
        pad=0
    )
)

fig = go.Figure(
    data=[
        go.Table(
            header=dict(
                values=header_content,
                height=HEADER_HEIGHT
            ),
            cells=dict(
                values=cell_content,
                height=CELL_HEIGHT
            )
        )
    ],
    layout=layout
)
fig.show()

注意事项

  • 调整表格字体大小、增加单元格内边距时,同步修改HEADER_HEIGHT和CELL_HEIGHT的数值即可,不需要改动整体计算逻辑
  • 该方案完全自适应数据集行数变化,数据集更新时总高度会自动跟随行数同步计算,无需手动调整静态参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 05:15:03