gpt4 book ai didi

python - 标题在时间序列季节性图上的位置

转载 作者:行者123 更新时间:2023-12-01 00:05:09 24 4
gpt4 key购买 nike

df

Date        Col1   Col2   Col3
2019-11-1 12 13 14
2019-10-1 2 3 1
2019-03-01 2 1 1
and so on

分解时间序列以获得季节性、趋势、观察值和残差值的代码:

 df = df.set_index('Date')
from statsmodels.tsa.seasonal import seasonal_decompose

for cols in df.columns.values:
s_dec_multiplicative = seasonal_decompose(df[cols], model =
"multiplicative")
s_dec_multiplicative.plot()
plt.title(cols)
plt.show()

现在作为输出,我得到图表 enter image description here

这些图表的问题是我在残差图上方得到标题,如图所示。我需要标题位于观察图上方

最佳答案

我做了一些假数据,希望有代表性。我确信(希望)有更好的方法来实现这一目标。

# imports
import pandas as pd
import numpy as np
from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt

然后形成假数据。

# random data
np.random.seed(0)
data = np.random.randint(1, 10, [50, 3])

# dates
start = pd.datetime(2019, 11, 1)
end = start + pd.DateOffset(days=data.shape[0] - 1)

# dummy dataframe
df = pd.DataFrame(
data,
index = pd.date_range(start, end),
columns = ['col_one', 'col_two', 'col_three']
)

然后使用以下命令,您可以控制哪个图表具有标题。您可以访问 DecomposeResult 属性,这些属性在下面的 attr 中给出。

attr = ['observed', 'trend', 'seasonal', 'resid']

for col in df:
fig, ax = plt.subplots(len(attr), 1, sharex=True)
sd = seasonal_decompose(df[col], model = "multiplicative")

for idx, a in enumerate(attr):
s_attr = getattr(sd, a)
s_attr.plot(ax = ax[idx], title = col if idx == 0 else None)
ax[idx].set(ylabel= a)

enter image description here

<小时/>

编辑

添加了ylabels

enter image description here

关于python - 标题在时间序列季节性图上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com