import numpy as np import pandas as pd import matplotlib.pyplot as plt import pyhht # 读取csv文件数据 data = pd.read_csv('77.csv', header=None) time = data.iloc[:, 0].values charge = data.iloc[:, 1].values # EMD分解 decomposer = pyhht.EMD() imfs = decomposer.decompose(charge)fig, axs = plt.subplots(nrows=imfs.shape[0]+2, ncols=1, figsize=(10, 15)) axs[0].plot(time, charge, label='Original') axs[0].set_xlabel('Time') axs[0].set_ylabel('Charge') axs[0].legend() for i in range(imfs.shape[0]): axs[i+1].plot(time, imfs[i], label=f'IMF{i+1}') axs[i+1].set_xlabel('Time') axs[i+1].set_ylabel('Charge') axs[i+1].legend() residuals = charge - np.sum(imfs, axis=0) axs[imfs.shape[0]+1].plot(time, residuals, label='Residuals') axs[imfs.shape[0]+1].set_xlabel('Time') axs[imfs.shape[0]+1].set_ylabel('Charge') axs[imfs.shape[0]+1].legend() axs[0].set_title('Original Signal') for i in range(imfs.shape[0]): axs[i+1].set_title(f'IMF {i+1}') axs[imfs.shape[0]+1].set_title('Residuals') plt.tight_layout() plt.show()调整以上代码,使得子图之间间距略大
时间: 2023-12-03 11:41:55 浏览: 35
可以使用`plt.subplots_adjust()`函数来调整子图之间的间距,例如在`plt.tight_layout()`函数之前添加以下代码即可:
```python
plt.subplots_adjust(hspace=0.5)
```
其中`hspace`参数控制水平方向的间距,默认值为0.2,可以根据需要进行调整。完整代码如下:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pyhht
# 读取csv文件数据
data = pd.read_csv('77.csv', header=None)
time = data.iloc[:, 0].values
charge = data.iloc[:, 1].values
# EMD分解
decomposer = pyhht.EMD()
imfs = decomposer.decompose(charge)
fig, axs = plt.subplots(nrows=imfs.shape[0]+2, ncols=1, figsize=(10, 15))
axs[0].plot(time, charge, label='Original')
axs[0].set_xlabel('Time')
axs[0].set_ylabel('Charge')
axs[0].legend()
for i in range(imfs.shape[0]):
axs[i+1].plot(time, imfs[i], label=f'IMF{i+1}')
axs[i+1].set_xlabel('Time')
axs[i+1].set_ylabel('Charge')
axs[i+1].legend()
residuals = charge - np.sum(imfs, axis=0)
axs[imfs.shape[0]+1].plot(time, residuals, label='Residuals')
axs[imfs.shape[0]+1].set_xlabel('Time')
axs[imfs.shape[0]+1].set_ylabel('Charge')
axs[imfs.shape[0]+1].legend()
axs[0].set_title('Original Signal')
for i in range(imfs.shape[0]):
axs[i+1].set_title(f'IMF {i+1}')
axs[imfs.shape[0]+1].set_title('Residuals')
plt.subplots_adjust(hspace=0.5)
plt.tight_layout()
plt.show()
```