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

标签 python matplotlib plot ipython jupyter-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 这样做?

谢谢

最佳答案

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

相关文章:

python - for 循环生成多个 polyfit 散点图

java - 没有可行的替代输入 '\\n"Python 错误

python - matplotlib 绘制具有不对称误差线的直方图

python字典分配不按顺序

python - heroku 推送错误 python 3-6

python - 圆弧补丁之间的填充 - Matplotlib

python - 在饼图上方绘制线条

python - plt.close() 和 plt.clf() 之间的区别

r - 在每组/ggplot2 等价的类型 ="o"的线前绘制点

r - 如何在 R 中以固定网格模式绘制 "matrix"