在一个图形中绘制多个seasonal_decompose图,可以通过以下步骤实现:
pandas
、statsmodels
和matplotlib
。然后,准备需要进行季节分解的时间序列数据。statsmodels
库中的seasonal_decompose
函数对时间序列数据进行季节分解。该函数可以根据不同的分解模型(如加法模型或乘法模型)进行分解,并返回分解后的趋势、季节和残差等组成部分。matplotlib
库中的绘图函数,将分解后的趋势、季节和残差等组成部分绘制在同一个图形中。可以使用不同的颜色或线型来区分不同的组成部分。以下是一个示例代码,展示了如何在一个图形中绘制多个seasonal_decompose图:
import pandas as pd
from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt
# 准备时间序列数据
data = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
# 定义绘制函数
def plot_seasonal_decompose(data, title):
# 进行季节分解
decomposition = seasonal_decompose(data, model='additive')
# 绘制图形
plt.figure(figsize=(12, 8))
plt.subplot(411)
plt.plot(data, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(decomposition.trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(decomposition.seasonal,label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(decomposition.resid, label='Residuals')
plt.legend(loc='best')
plt.suptitle(title, fontsize=16)
plt.show()
# 绘制多个seasonal_decompose图
plot_seasonal_decompose(data['column1'], 'Seasonal Decompose - Column 1')
plot_seasonal_decompose(data['column2'], 'Seasonal Decompose - Column 2')
在上述示例代码中,首先导入了必要的库和数据。然后定义了一个绘制函数plot_seasonal_decompose
,该函数接受时间序列数据和标题作为参数,利用seasonal_decompose
函数进行季节分解,并使用matplotlib
库绘制四个子图,分别表示原始数据、趋势、季节和残差。最后,调用plot_seasonal_decompose
函数分别绘制多个seasonal_decompose图。
请注意,示例代码中的数据文件data.csv
需要根据实际情况进行替换,同时还可以根据需要调整图形的大小、颜色和线型等参数。
领取专属 10元无门槛券
手把手带您无忧上云