如何用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参数可根据条形的宽度比例灵活调整,避免列和条形错位

内容的提问来源于stack exchange,提问作者Quentin Demange
相关产品推荐
相关产品推荐

