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

如何用Plotly Python实现条形图X轴与表格列标题共享坐标轴

Plotly实现条形图与表格共享X轴方案

可以实现该效果,通过plotly.subplots创建分层子图并手动对齐坐标轴参数即可,完整实现代码如下:

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd

# 示例数据,可替换为你的实际数据
df = pd.DataFrame({
    "类别": ["A", "B", "C", "D", "E"],
    "数值": [28, 15, 32, 20, 25]
})

# 创建2行1列子图,开启共享X轴,设置两行高度占比
fig = make_subplots(
    rows=2, cols=1,
    shared_xaxes=True,
    vertical_spacing=0.02,
    row_heights=[0.7, 0.3]
)

# 第一行添加条形图
fig.add_trace(
    go.Bar(x=df["类别"], y=df["数值"], name="数值统计"),
    row=1, col=1
)

# 第二行添加表格,表头对应X轴的类别,列宽和上方条形的X轴分桶宽度对齐
fig.add_trace(
    go.Table(
        header=dict(values=df["类别"], align="center"),
        cells=dict(values=[df["数值"]], align="center"),
        columnwidth=[1]*len(df) # 均匀分配列宽,和上方条形一一对应
    ),
    row=2, col=1
)

# 隐藏第二行子图的多余坐标轴,避免干扰对齐效果
fig.update_layout(
    xaxis2={"showticklabels": False, "showgrid": False, "zeroline": False},
    height=600,
    title_text="共享X轴的条形图与表格"
)

fig.show()

调整要点

  • 若使用数值型而非类别型X轴,可同步设置xaxis和xaxis2的range参数,保证上下坐标完全对齐
  • 调整row_heights参数可修改条形图和表格的高度占比,调整vertical_spacing可缩小二者空隙,更贴近参考图的视觉效果
  • 表格的columnwidth参数可根据条形的宽度比例灵活调整,避免列和条形错位

共享X轴条形图参考效果

内容的提问来源于stack exchange,提问作者Quentin Demange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:54:00