如何在Plotly/Dash中仅为单个指定子图设置update_layout的边距参数
如何仅为Plotly子图布局中的单个子图设置padding
fig.update_layout中传入的pad属于全局画布配置,会默认应用到所有子图的周边留白,无法直接指定仅作用于单个子图。要实现仅给上方的main折线图子图添加指定padding,可以通过定位子图位置,单独配置对应坐标轴的padding参数实现,具体操作如下:
- 第一步:移除
update_layout中的全局pad=20配置,避免该参数作用到所有子图 - 第二步:调用
update_xaxes和update_yaxes方法,通过row和col参数定位到第1行第1列的main子图,单独设置该子图的padding
对应代码示例:
# 全局配置保留高度和画布边距,移除全局pad参数 fig.update_layout(height=400, margin=dict(t=30, b=15, l=15)) # 仅给第1行第1列的main子图设置20的padding fig.update_xaxes(pad=20, row=1, col=1) fig.update_yaxes(pad=20, row=1, col=1)
如果你的需求是调整两个子图之间的垂直间距,也可以在初始化子图时通过vertical_spacing参数控制,示例:
from plotly.subplots import make_subplots # 初始化2行1列布局时,自定义上下子图的垂直间距 fig = make_subplots(rows=2, cols=1, vertical_spacing=0.15)
内容的提问来源于stack exchange,提问作者pepe
相关产品推荐
相关产品推荐

