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
相关产品推荐
相关产品推荐

