首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中,简单的指数平滑预测不是基于实际数据绘制的

在Python中,简单的指数平滑预测不是基于实际数据绘制的
EN

Stack Overflow用户
提问于 2019-04-19 03:03:38
回答 1查看 100关注 0票数 0

我正在使用statsmodels包中的SimpleExpSmoothing。我创建了一个时序数据帧。我能够为预测和实际数据创建曲线图。但当我尝试将它们绘制在一起时,它们会显示为单独的图。我想在实际数据的基础上绘制预测图。

我使用的是statsmodel 0.9.0、python 3.6.8和matplotlib 3.0.2

代码语言:javascript
复制
# Simple Exponential Smoothing
fit1 = SimpleExpSmoothing(df1).fit(smoothing_level=0.2,optimized=False)
fcast1 = fit1.forecast(12).rename(r'$\alpha=0.2$')
# plot
fcast1.plot(marker='o', color='blue', legend=True)
fit1.fittedvalues.plot(marker='o',  color='blue')



fit2 = SimpleExpSmoothing(df1).fit(smoothing_level=0.6,optimized=False)
fcast2 = fit2.forecast(12).rename(r'$\alpha=0.6$')
# plot
fcast2.plot(marker='o', color='red', legend=True)
fit2.fittedvalues.plot(marker='o', color='red')


fit3 = SimpleExpSmoothing(df1).fit()
fcast3 = fit3.forecast(12).rename(r'$\alpha=%s$'%fit3.model.params['smoothing_level'])
# plot
fcast3.plot(marker='o', color='green', legend=True)
fit3.fittedvalues.plot(marker='o', color='green')

df1.plot()

plt.show()

我有两个图,一个是所有预测图,另一个是实际数据图。我想要一个图与预测的顶部实际。

EN

回答 1

Stack Overflow用户

发布于 2019-04-21 09:34:59

这与Statsmodels无关,它只是Pandas绘图的工作方式。确保它们都绘制在同一图形中的一种方法是自己构造图形,然后显式地传递轴:

代码语言:javascript
复制
import matplotlib.pyplot as plt
fig, ax = plt.subplots()

# ...

fcast1.plot(ax=ax, marker='o', color='blue', legend=True)
fit1.fittedvalues.plot(ax=ax, marker='o',  color='blue')

# etc.

df1.plot(ax=ax)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55752326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档