import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
fig.set_tight_layout(True)
# 询问图形在屏幕上的大小和DPI(每英寸点数)
# 注意当把图形保存为文件时,需要为此单独再提供一个DPI
print('fig size: {0} DPI, size in inches {1}'.format(
fig.get_dpi(), fig.get_size_inches()))
# 绘制一个保持不变(不会被重新绘制)的散点图以及初始直线
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line, = ax.plot(x, x - 5, 'r-', linewidth=2)
def update(i):
label = 'timestep {0}'.format(i)
print(label)
# 更新直线和轴(用一个新X轴标签)
# 以元组形式返回这一帧需要重新绘制的物体
line.set_ydata(x - 5 + i)
ax.set_xlabel(label)
return line, ax
if __name__ == '__main__':
# 会为每一帧调用Update函数
# 这里FunAnimation设置一个10帧动画,每帧间隔200ms
anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
if len(sys.argv) > 1 and sys.argv[1] == 'save':
anim.save('line.gif', dpi=80, writer='imagemagick')
else:
# Plt.show()会一直循环动画
plt.show()
可以生成下面这种图
python时间序列模型预测时一条直线是因为是线性模型的原因。线性模型也称作趋势模型,它表示一个时间序列可以用一条直线来表示。它的基本等式:以一个公司的销售总额为例,一开始的初始是5000,每隔一个时间步长增加2500。指数平滑法是时间序列分析方法中的一种。它是一种用于预测未来发展趋势的建模算法。它有三种不同形式:一次指数平滑法、二次指数平滑法、及三次指数平滑法。三种指数平滑法都要更新上一时间步长的计算结果,并使用当前时间步长的数据中包含的新信息。通过混合新信息和旧信息来实现。python沿画笔的方向画线用forward()函数,forward()函数能使画笔前进,比如沿画笔方向画100像素的直线,代码如下所示:
turtle.forward(100)