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

如何用Plotly等库生成带可调跨列属性的美观Pandas DataFrame表格

Plotly 多级跨列表头实现方案

直接给出完整可运行代码:

import plotly.graph_objects as go

# 你转置后的数据内容
row_data = [0.0, 0.18465, 1.0, 1.381629, -0.031118, 0.636372]

fig = go.Figure(data=[go.Table(
    # 配置多级表头
    header=dict(
        # 二维数组,每一行对应一级表头
        values=[
            ['', 'Class A', '', '', 'Class B', '', ''],
            ['Subclass', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
        ],
        # 配置第一行表头的跨列属性,顺序对应每一列的跨列数,无需跨列的位置填0
        colspan = [
            [1, 3, 0, 0, 3, 0, 0],
            [1]*7 # 第二行表头无跨列,每列占1格
        ],
        fill_color='paleturquoise',
        align='left',
        # 可单独配置表头样式,比如第一级表头字体加粗
        height=30,
        font=dict(size=14, weight='bold')
    ),
    cells=dict(
        values=[
            ['Value'],
            row_data
        ],
        fill_color='lavender',
        align='left'
    )
)])

# 多图表整合参考:
# from plotly.subplots import make_subplots
# 声明2行1列的画布,第一行放散点/折线图,第二行放表格
# fig = make_subplots(rows=2, cols=1, specs=[[{"type": "scatter"}], [{"type": "table"}]])
# 按常规方式添加各类图表 trace 即可,和表格逻辑完全兼容

fig.show()

核心配置说明

  • header.values传入二维列表即可实现多行表头,子列表的数量对应表头的行数
  • colspan参数和values维度对应,指定每个表头单元格的跨列数量,跨列覆盖的位置填0即可自动合并单元格
  • 完全兼容Plotly的子图系统,可以和散点图、折线图等任意Plotly图表放在同一画布的不同子图位置,满足统一整合所有图表的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:04