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

