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

如何消除Plotly多trace图表中柱状图与Y轴间的多余边距?

原因说明

混合添加柱状图、散点图两种不同类型trace时,Plotly会默认给分类X轴的两端自动增加额外padding适配散点显示范围,因此会出现多余空白边距;仅存在柱状图trace时,X轴padding会自动匹配柱状宽度,所以显示正常。

解决方案

直接手动指定X轴的显示范围即可消除空白。分类轴的索引从0开始,共N个分类的情况下,范围设置为[-0.5, N-0.5]刚好可以让两端的柱状图紧贴Y轴和右边界,效果和单trace场景一致。如果X轴分类数量是动态的,也可以替换为range=[-0.5, len(my_x)-0.5],不需要提前固定N值。

只需在fig.show()之前添加X轴配置即可:

fig.update_xaxes(range=[-0.5, N - 0.5])

完整修改后代码

import random
import plotly.graph_objects as go

N = 45
my_x = ['#' + str(random.randint(50, 999)) for _ in range(N)]
my_y1 = [random.randint(5, 20) for _ in range(N)]
my_y2 = [random.randint(10, 30) for _ in range(N)]

trace1 = go.Bar(name='Food',
                x=my_x,
                y=my_y1)

trace2 = go.Scatter(name='Water',
                    x=my_x,
                    y=my_y2,
                    mode='markers',
                    marker_size=12)

fig = go.Figure()
fig.add_trace(trace1)
fig.add_trace(trace2)
# 配置X轴范围消除两端空白
fig.update_xaxes(range=[-0.5, N - 0.5])
fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:45:04