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

Flask中使用matplotlib.figure绘图时标题与坐标轴标签重叠问题求助

可用解决方案

你遇到的子图重叠问题是因为没有调整子图布局规则,set_title(pad=)仅能调整单张子图内部标题和绘图区域的距离,不会改变子图之间的相对位置,因此无法解决重叠问题。以下两个方案均为matplotlib.figure.Figure类原生支持的方法,不需要依赖pyplot接口,完全符合Web服务场景的使用规范:


方案1:自动调整布局(简单通用)

调用fig.tight_layout()方法,matplotlib会自动计算子图间距、边距,避免标签、标题重叠。你只需要在所有子图配置完成后,savefig操作之前插入这一行代码即可:

# 所有子图创建、标题和坐标轴配置完成后新增
fig.tight_layout()

# 原有保存逻辑不变
buf = BytesIO()
fig.savefig(buf, format = 'png')

方案2:手动控制间距(灵活自定义)

如果自动调整的间距不符合你的预期,可调用fig.subplots_adjust()方法手动指定参数:

  • hspace参数控制垂直方向子图之间的间距,数值越大间距越宽,可根据实际渲染效果调整数值
  • 还可同步配置top/bottom参数调整整张图的上下边距,避免顶部标题、底部坐标轴标签被截断
# 所有子图配置完成后新增
# 示例参数可根据实际效果调整
fig.subplots_adjust(top=0.94, bottom=0.06, hspace=0.7)

# 原有保存逻辑不变
buf = BytesIO()
fig.savefig(buf, format = 'png')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:54:03