matplotlib 中subplot子图绘图时容易出现标题重叠的情况。任意两个信号分别在2*1的子图矩阵中绘图。subplot(211)代表:矩阵维度为(2,1),现在按顺序绘制第一个图,当最后一位为2时,则绘制第二个图。典型代码如下:
import numpy as np
import matplotlib.pyplot as plt
Ts = 0.0002
t = 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() ,则标题显示恢复正常。