我在绘制天气时间序列的 AR 和 MA 模型时遇到问题。例如:
from statsmodels.tsa.arima_process import arma_generate_sample
def gen_ar2(alpha1,alpha2,size):
ar = [1,-alpha1,-alpha2]
ma = [1]
return arma_generate_sample(ar,ma,size)
因此,如果我想绘图,可以说 x(t) = 0.75 x(t-1) - 0.125 x(t-2) + w(t),其中 w(t) 是均值 0 和方差的正态分布1(可以说)...绘制此图通常在 ipython 笔记本上绘制两次,即
sm.graphics.tsa.plot_acf(gen_ar2(0.75,-0.125,size=5000),lags=40)
这为我创建了两个图,而不是一个。我该如何阻止 ipython 这样做?
谢谢
最佳答案
您会看到两个图,因为 plot_acf
函数创建图并返回图形对象。在“普通”Python IDE 或脚本中,这不会产生两个图像,但 IPython 及其内联后端会在单元格中创建图形后显示该图形。此外,还显示返回的数字。稍后由 OUT[x] 提示符指示。
要获取单个图像,只需将输出保存到某个变量(以防止其显示),例如
_ = sm.graphics.tsa.plot_acf(gen_ar2(0.75,-0.125,size=5000),lags=40)
或者抑制输出(注意;
!)
sm.graphics.tsa.plot_acf(gen_ar2(0.75,-0.125,size=5000),lags=40);
这两种方式都只能获取显示的数据,而不能获取显示的返回数据。
关于python - 我如何让 statsmodels.api 只绘制一次时间序列图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448093/