python stl时间序列分解绘图完整代码
时间: 2023-06-10 10:08:19 浏览: 282
下面是使用Python的STL(Seasonal-Trend decomposition procedure based on LOESS)算法对时间序列进行分解并绘制图形的完整代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose
# 读取时间序列数据
df = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
# 对时间序列进行分解
result = seasonal_decompose(df, model='additive')
# 绘制分解后的图形
fig, (ax1, ax2, ax3, ax4) = plt.subplots(4, 1, figsize=(10,8))
result.observed.plot(ax=ax1)
ax1.set_ylabel('Observed', fontsize=12)
result.trend.plot(ax=ax2)
ax2.set_ylabel('Trend', fontsize=12)
result.seasonal.plot(ax=ax3)
ax3.set_ylabel('Seasonal', fontsize=12)
result.resid.plot(ax=ax4)
ax4.set_ylabel('Residual', fontsize=12)
plt.tight_layout()
plt.show()
```
其中,需要将数据存储在名为"data.csv"的CSV文件中,其中第一列为日期,第二列为时间序列数据。在代码中,我们使用Pandas库将数据读取为DataFrame对象,并使用`parse_dates`和`index_col`参数将日期列设置为索引列。接着,我们使用`seasonal_decompose`函数对时间序列进行分解,并将结果存储在名为`result`的变量中。最后,我们将分解后的结果绘制为四个子图,分别表示原始数据、趋势、季节性和残差。
阅读全文