要在Python中使用滚动平均法制作时间序列图,需要使用一些Python的包和库,包括pandas、numpy、matplotlib等。大致的步骤如下:
- 导入必要的包和库。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
- 构造时间序列数据。
date_rng = pd.date_range(start='1/1/2021', end='1/08/2021', freq='H')
其中,pd.date_range会生成一个日期范围,指定开始日期和结束日期,freq参数表示时间间隔的类型。这里以每小时为一个频率。
- 随机生成数据并以DataFrame的格式储存。
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_rng)))
这里使用np.random.randint()方法随机生成0到100之间的数据。
- 使用rolling方法计算滚动平均数。
df['rolling_mean'] = df['data'].rolling(window=2).mean()
rolling函数可以计算移动窗口中的数值统计值,如平均值、中位数、标准差等。这里的window=2表示每次计算前两个数据的平均值,生成第一个滚动平均数时需要保证至少有两个值。
- 绘制时间序列图。
plt.plot(df['date'],df['data'])
plt.plot(df['date'],df['rolling_mean'])
plt.show()
最后一步则是将时间序列图绘制出来。df['date']作为横轴,df['data']和df['rolling_mean']则分别是纵轴,分别代表原始数据和滚动平均数数据。plt.show()
负责实际地将图形显示出来。
完整代码块如下所示:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
date_rng = pd.date_range(start='1/1/2021', end='1/08/2021', freq='H')
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_rng)))
df['rolling_mean'] = df['data'].rolling(window=2).mean()
plt.plot(df['date'],df['data'])
plt.plot(df['date'],df['rolling_mean'])
plt.show()
以上是如何在Python中使用滚动平均法制作时间序列图的详细步骤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Python中用滚动平均法制作时间序列图 - Python技术站