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

Dash图表存在顶部及右侧空白:如何去除并完美适配容器?

解决Dash+Plotly图表顶部/右侧空白问题

要消除图表顶部和右侧的空白,需要从Plotly布局参数和CSS样式调整两方面入手,以下是具体方案:


1. 调整Plotly Figure的布局参数

核心是设置margin参数消除默认边距,同时优化轴标题的显示逻辑:

修改后的Python代码:

monte_carlo_graph = dcc.Graph(
    id="monte_carlo_graph",
    figure=go.Figure(
        data=simulations_traces,
        layout=go.Layout(
            showlegend=False,
            title=None,  # 移除空标题预留的空白区域
            yaxis=dict(
                autorange=True,
                title="Price",
                titlefont=dict(color="white"),
                tickfont=dict(color="white"),
                gridcolor="grey",
                automargin=True  # 自动调整轴标题位置,避免截断
            ),
            xaxis_rangeslider_visible=False,
            xaxis=dict(
                autorange=True,
                title="Days",
                titlefont=dict(color="white"),
                tickfont=dict(color="white"),
                gridcolor="grey",
                automargin=True
            ),
            plot_bgcolor="rgba(0,0,0,0)",
            paper_bgcolor="rgba(0,0,0,0)",
            # 精准控制边距:顶部/右侧设为0消除空白,左侧/底部留空间放轴标题
            margin=dict(l=40, r=0, t=0, b=40)
        ),
    ),
    className="monte-carlo-graph",
)

2. 优化CSS样式,覆盖Plotly内部默认padding

Plotly的绘图容器自带默认内边距,需要通过CSS强制覆盖:

修改后的CSS代码:

.monte-carlo-graph {
    height: 600px;
    width: 900px;
    overflow: hidden;
    background-color: #211F32;
    padding: 0 !important;
    margin: 0 !important;
    position: relative;
}

/* 消除Plotly内部容器的默认padding */
.monte-carlo-graph .js-plotly-plot .plot-container {
    padding: 0 !important;
}

关键说明

  • margin参数:r=0和t=0直接消除右侧、顶部的空白;l和b的数值可根据轴标题的长度调整,确保标题不被截断。如果不需要轴标题,可直接设l=0, b=0,让图表完全填满容器。
  • title=None:替代原有的空字符串标题,避免Plotly为标题区域预留空白。
  • 新增的CSS规则:针对Plotly内部的绘图容器,强制清除默认padding,这是很多时候空白无法消除的隐藏原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:43:16