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

Python子图间距自动调整:如何完整显示标题与X轴标签?

解决Matplotlib子图标题与X轴标签被遮挡的问题

以下是几种实用的自动/手动调整子图间距的方法,确保标题和轴标签完整显示:

  • 方法1:使用tight_layout()自动适配
    这是最常用的快速解决方案,会自动计算子图、标题、轴标签之间的合理间距:
import matplotlib.pyplot as plt

# 创建2行1列的子图
fig, (ax1, ax2) = plt.subplots(2, 1)

# 绘制子图内容并设置标签、标题
ax1.plot([1,2,3], [4,5,6])
ax1.set_title("子图1标题")
ax1.set_xlabel("X轴标签1")

ax2.plot([1,2,3], [6,5,4])
ax2.set_title("子图2标题")
ax2.set_xlabel("X轴标签2")

# 自动调整布局,避免元素遮挡
plt.tight_layout()
plt.show()
  • 方法2:创建子图时启用constrained_layout=True
    这个参数会在绘图过程中实时调整布局,适合需要动态修改子图内容的场景:
import matplotlib.pyplot as plt

# 创建子图时直接启用约束布局
fig, (ax1, ax2) = plt.subplots(2, 1, constrained_layout=True)

ax1.plot([1,2,3], [4,5,6])
ax1.set_title("子图1标题")
ax1.set_xlabel("X轴标签1")

ax2.plot([1,2,3], [6,5,4])
ax2.set_title("子图2标题")
ax2.set_xlabel("X轴标签2")

plt.show()
  • 方法3:手动精细调整间距(subplots_adjust())
    如果自动调整效果不理想,可以手动指定整体边距和子图间的间距:
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(2, 1)

ax1.plot([1,2,3], [4,5,6])
ax1.set_title("子图1标题")
ax1.set_xlabel("X轴标签1")

ax2.plot([1,2,3], [6,5,4])
ax2.set_title("子图2标题")
ax2.set_xlabel("X轴标签2")

# 自定义间距:top/bottom控制画布上下边距,hspace控制子图垂直间距
plt.subplots_adjust(top=0.9, bottom=0.1, hspace=0.5)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:02:27