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

如何移除Matplotlib子图中文本下方的多余空白

解决Matplotlib子图多余空白的问题

针对子图无法贴合Logo、标题及文本内容的问题,可通过以下调整消除多余空白,同时保留原有文本布局:

1. 移除Logo与标题子图的边距

对于已隐藏坐标轴的子图,直接清除内部边距,让内容紧贴子图边界:

  • 在Logo子图的imshow操作后添加边距清除代码
  • 标题子图隐藏坐标轴后同样清除边距

2. 收缩文本子图的显示范围

文本子图的空白源于默认轴范围过大,通过调整轴上下限匹配文本实际位置,同时隐藏所有边框:

  • 隐藏所有方向的spine(包括上下边框)
  • 清除子图边距,设置y轴范围刚好覆盖文本的上下边界

3. 优化Gridspec行高比例

调整右侧网格的行高比例,让Logo/标题行、文本行的高度分配更贴合内容尺寸,避免冗余空间

修改后的完整代码片段

# ---- RIGHT COLUMN: 6 rows ----
# 调整行高比例,让Logo/标题行、文本行的高度更适配内容
gs_right = gs_main[1].subgridspec(6, 1, hspace=0.0, height_ratios=[1, 2, 1, 1, 1, 1])

# ------------------------------------------------------------
## Logo & Title
gs_1 = gs_right[0].subgridspec(1, 2, width_ratios=[1, 3])

ax_logo = fig.add_subplot(gs_1[0])
ax_logo.axis("off")
logo = mpimg.imread("path/to/logo")
ax_logo.imshow(logo)
ax_logo.margins(0)  # 清除Logo子图的所有边距

ax_title = fig.add_subplot(gs_1[1])
ax_title.text(0, 0.5, "Title\n", fontsize=12, fontweight="bold", va="center", ha="left")
ax_title.axis("off")
ax_title.margins(0)  # 清除标题子图的所有边距

# ------------------------------------------------------------
# ax_2: Text
ax_2 = fig.add_subplot(gs_right[1])
ax_2.tick_params(left=False, bottom=False, labelleft=False, labelbottom=False)
# 隐藏所有方向的边框
for direction in ["left", "right", "top", "bottom"]:
    ax_2.spines[direction].set_visible(False)

ax_2.margins(0)  # 清除文本子图的边距
# 设置y轴范围,刚好覆盖文本的上下位置(可根据实际文本坐标微调)
ax_2.set_ylim(0.55, 0.95)

ax_2.text(0.5, 0.9, "Text1", ha="center", va="center", fontsize=14, fontweight="bold")
ax_2.text(0.5, 0.8, "Text2", ha="center", va="center", fontsize=12, fontweight="bold")
ax_2.text(0.5, 0.7, "Text3", ha="center", va="center", fontsize=10, fontweight="bold")
ax_2.text(0.5, 0.6, "Text4", ha="center", va="center", fontsize=10)

额外提示

若整体布局仍有冗余空白,可在创建Figure时添加constrained_layout=True参数(如fig = plt.figure(constrained_layout=True)),Matplotlib会自动优化子图间距,进一步减少不必要的空白。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 07:53:19