我如何让statsmodels.api只绘制一次时间序列图?

时间:2014-12-12 16:38:33

标签: python matplotlib plot ipython ipython-notebook

我无法在时间序列天气中绘制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这样做?

感谢

1 个答案:

答案 0 :(得分:3)

您会看到两个图,因为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);

在这两种方式中,您只能获取显示的数据,而不会显示返回的数据。