matplotlib 中子图subplot 绘图时标题重叠解决办法(备忘)

matplotlib 中subplot子图绘图时容易出现标题重叠的情况。任意两个信号分别在2*1的子图矩阵中绘图。subplot(211)代表:矩阵维度为(2,1),现在按顺序绘制第一个图,当最后一位为2时,则绘制第二个图。典型代码如下:

import numpy as np
import matplotlib.pyplot as plt
Ts = 0.0002t = Ts * np.array(range(80000)).reshape(-1, 1)  # 采样时间序列x = np.cos(2 * np.pi * 1325 * t + np.pi / 6) * np.exp(-0.5 * t) \+ 0.88 * np.cos(2 * np.pi * 1450 * t + 2 * np.pi / 6) \+ 1.5 * np.cos(2 * np.pi * 1500 * t + 3 * np.pi / 6) \+ 0.7 * np.cos(2 * np.pi * 1535 * t + 4 * np.pi / 6) \+ 3 * np.cos(2 * np.pi * 1550 * t + 5 * np.pi / 6) \+ 0.2 * np.cos(2 * np.pi * 2000 * t + np.pi)xn = awgn(x, 0)plt.subplot(211)plt.plot(x);plt.title('原始信号')  plt.subplot(212)plt.plot(xn);plt.title('加噪信号')  plt.show()

将数据绘到图上后,会得到如下结果,很明显子图2的标题和子图1重合,看不清。

解决上述问题的方法如下:

在plt.show()绘图之前加上一句代码: plt.tight_layout() ,则标题显示恢复正常。