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

Plotly表格初始渲染异常 需移动列触发重渲染才可正常显示

问题根因

初始渲染列排布错乱是columnorder参数配置和实际列数不匹配导致的。

  • 你定义的表格总计6列:首列为TENOR,后续5列分别对应表头a、b、c、d、e。columnorder参数需要传入长度和总列数一致的索引数组,明确指定所有列的渲染顺序。
  • 现有代码仅传入[1,2]两个索引值,只覆盖了前2列的排序规则,剩余4列在初始渲染阶段没有拿到明确的位置、宽度计算依据。Plotly表格组件的初始布局逻辑不会自动补全缺失的列顺序配置,因此会出现列堆叠、错位问题。
  • 手动拖动列触发交互重渲染时,组件会重新遍历所有现存列做全量布局重算,不再依赖初始传入的不完整columnorder配置,因此除被拖动的列位置变化外,其余列都会回到正确排布位置。
修复方法

两种方案都可以解决该问题:

  • 补全columnorder参数,传入和总列数匹配的索引数组,匹配现有列顺序的配置为columnorder = [1,2,3,4,5,6]
  • 如果不需要自定义列的展示顺序,直接删除columnorder参数即可,Plotly会默认按传入值的顺序渲染所有列,不会触发初始布局计算错误。

修正后的可运行代码如下:

import plotly.graph_objects as go
data = [go.Table(
    columnorder = [1,2,3,4,5,6],    
    header = dict(
        values = ['<b>TENOR</b>', 'a','b','c','d','e'],
        line_color = 'darkslategray',
        fill_color = 'royalblue',
        align = 'center',
        font = dict(color = 'white', size = 12),
        height = 20
        ),
    cells = dict(
        values = [['row1','row2','row3'],[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5]],
        line_color = 'darkslategray',
        fill = dict(color=['paleturquoise', 'white']),
        align = ['right', 'center'],
        font_size = 12,
        height = 20)
    )]

fig = go.Figure(data = data)
fig.show()

该问题属于Plotly表格组件的边缘bug:当columnorder数组长度和实际列数不一致时,初始布局校验逻辑不会抛出显式报错,仅在交互重渲染阶段才会做全量列校正,很容易误导排查方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:54:22