Statsmodels.api.tsa.seasonal_decompose 图大小

Statsmodels.api.tsa.seasonal_decompose plot figsize

我正在使用 statsmodels.api.tsa.seasonal_decompose 对时间序列进行一些季节性分析。

我使用

设置
decomp_viz = sm.tsa.seasonal_decompose(df_ts['NetConsumption'], period=48*180)

然后尝试使用

将其可视化
decomp_viz.plot()

输出很小,所以我尝试使用

的标准 matplotlib 命令
decomp_viz.plot(figsize=(20,20))

然而,这得到了警告:

TypeError: plot() got an unexpected keyword argument 'figsize'

文档说 matplotlib.figure.FigureDecomposeResult.plot 返回,所以我不确定为什么会发生此错误。

我的 statsmodels 版本是 0.13.1,我知道文档是针对 0.14.0 的,但是 conda 说那个版本不存在,我无法更新到它.

如有任何想法,我们将不胜感激。

DecomposeResult.plot 不传递关键字参数。您可以在创建后更改图形大小:

import statsmodels.api as sm
import numpy as np
import matplotlib.pyplot as plt

PERIOD = 48*180
g = np.random.default_rng(20211225)
y = np.cos(2 * np.pi * np.linspace(0, 10.0, 10*PERIOD))
y += g.standard_normal(y.shape)

decomp_viz = sm.tsa.seasonal_decompose(y, period=PERIOD)
fig = decomp_viz.plot()
fig.set_size_inches((16, 9))
# Tight layout to realign things
fig.tight_layout()
plt.show()

或者,您可以通过更改 MPL rc 来执行相同的操作。

import statsmodels.api as sm
import numpy as np
import matplotlib.pyplot as plt
# Change default figsize
plt.rc("figure",figsize=(20,20))

PERIOD = 48*180
g = np.random.default_rng(20211225)
y = np.cos(2 * np.pi * np.linspace(0, 10.0, 10*PERIOD))
y += g.standard_normal(y.shape)

decomp_viz = sm.tsa.seasonal_decompose(y, period=PERIOD)
decomp_viz.plot()
plt.show()

产生(对我的屏幕来说太大了)