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

Python子图绘图中标题与坐标轴标签重叠问题解决

解决Matplotlib子图标题与坐标轴标签重叠问题

下面提供几种实用的解决办法:

方法1:自动调整布局(最简单)

在调用plt.show()前添加plt.tight_layout(),Matplotlib会自动调整子图间距,避免元素重叠。

修改后的代码:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-np.pi,np.pi,50,endpoint=True)
plt.figure()
plt.subplot(211)
plt.plot(x,np.sin(x),'r-')
plt.title('y=sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
plt.subplot(212)
plt.plot(x,np.cos(x),'b-')
plt.title('y=cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
# 自动调整布局
plt.tight_layout()
plt.show()

方法2:手动设置子图垂直间距

使用plt.subplots_adjust()手动设置垂直方向的子图间距(hspace参数),数值越大间距越宽,可根据需求调整。

示例代码:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-np.pi,np.pi,50,endpoint=True)
plt.figure()
plt.subplot(211)
plt.plot(x,np.sin(x),'r-')
plt.title('y=sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
plt.subplot(212)
plt.plot(x,np.cos(x),'b-')
plt.title('y=cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.grid()
# 手动设置垂直间距,这里设为0.5,可按需调整
plt.subplots_adjust(hspace=0.5)
plt.show()

方法3:使用面向对象式绘图(更灵活)

Matplotlib的面向对象API能更精细地控制绘图元素,同样可以结合tight_layout()解决重叠问题:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-np.pi,np.pi,50,endpoint=True)

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

ax1.plot(x, np.sin(x), 'r-')
ax1.set_title('y=sin(x)')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.grid()

ax2.plot(x, np.cos(x), 'b-')
ax2.set_title('y=cos(x)')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.grid()

# 自动调整布局
fig.tight_layout()
plt.show()

内容的提问来源于stack exchange,提问作者Ongky Denny Wijaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:00