如何将Plotly柱状图与表格合并为一张图像
实现Plotly柱状图+表格上下组合的简单方案
别发愁,其实不用纠结子图的限制,我们可以通过布局的domain参数来手动分配柱状图和表格的垂直空间,轻松实现上下排布的效果。下面是针对你现有代码的完整适配示例:
完整代码示例
import plotly.graph_objects as go # --- 替换成你的实际数据 --- # 你的原有柱状图数据(chart_matrix) chart_matrix = [go.Bar(x=["产品A", "产品B", "产品C"], y=[45, 62, 38])] # 你的原有表格表头与数据 table_title = ["产品名称", "销量"] sorted_matrix = [["产品A", "产品B", "产品C"], [45, 62, 38]] # --- 组合两者到同一个Figure --- # 直接把柱状图trace和表格trace合并进同一个数据列表 fig = go.Figure(data=chart_matrix + [ go.Table( type='table', header=dict(values=table_title), cells=dict(values=sorted_matrix) ) ]) # --- 核心:设置布局分配垂直空间 --- fig.update_layout( height=650, # 整体图形高度,可根据表格行数调整 yaxis=dict( domain=[0.3, 1] # 柱状图占据垂直方向30%到100%的区域 ), margin=dict(l=40, r=40, t=40, b=40), # 调整边距让内容更舒展 title="产品销量统计(柱状图+表格)" ) # 展示最终图形 fig.show()
关键逻辑说明
- 合并Trace:不用单独创建两个
Figure,直接把柱状图的trace(你的chart_matrix)和表格trace放进同一个go.Figure的data参数里即可。 - Domain分配空间:
yaxis.domain=[0.3, 1]表示柱状图占用从图形30%高度位置到顶部的区域,剩下的0到30%高度会自动留给表格,表格会自适应这个空间。 - 高度适配:如果表格行数较多,只需调大
height参数,避免内容被截断。
这样就能完美实现你想要的“柱状图在上,表格在下”的组合效果啦!
内容的提问来源于stack exchange,提问作者John Smith
相关产品推荐
相关产品推荐

