如何不使用Dash将两个Plotly生成的表格相邻并排摆放
无需使用Dash实现两个不同尺寸Plotly表格并排摆放的方法
方法1:使用Plotly原生子图模块(最便捷)
- 调用
plotly.subplots的make_subplots方法创建1行2列的子图布局,通过column_widths参数自定义两列宽度比例,适配两个表格的不同尺寸 - 分别将已生成的两个表格的trace对象,通过
add_trace方法添加到对应行列的子图位置 - 调整整体布局的边距、高度等参数后即可直接渲染展示
示例代码:
from plotly.subplots import make_subplots import plotly.figure_factory as ff # 替换为你自己的两个表格生成代码 table1 = ff.create_table([["列1", "列2"], ["数据1", "数据2"]]) table2 = ff.create_table([["字段A", "字段B", "字段C"], ["值1", "值2", "值3"], ["值4", "值5", "值6"]]) # 设置1行2列布局,自定义两列宽度占比,适配不同尺寸的表格 combined_fig = make_subplots( rows=1, cols=2, column_widths=[0.3, 0.7], # 按需调整比例适配两个表格的宽度 specs=[[{"type": "table"}, {"type": "table"}]] ) # 添加两个表格到对应位置 combined_fig.add_trace(table1.data[0], row=1, col=1) combined_fig.add_trace(table2.data[0], row=1, col=2) # 调整布局避免内容挤压 combined_fig.update_layout( height=350, margin=dict(l=10, r=10, t=10, b=10) ) combined_fig.show()
方法2:HTML拼接方案(适合静态导出场景)
如果只需要输出静态HTML文件,不需要交互调整,可以用纯HTML排版实现:
- 分别调用两个表格对象的
to_html(full_html=False)方法,获取不含完整HTML结构的表格片段 - 给两个表格片段分别包裹设置了
display: inline-block; width: 适配宽度的div容器,拼接后保存为HTML文件即可
注意事项
如果两个表格的行数差异较大导致垂直方向错位,可以通过子图的yaxis.domain参数调整单个子图的垂直显示范围,实现对齐效果。
内容的提问来源于stack exchange,提问作者Mat
相关产品推荐
相关产品推荐

