我需要帮助在我已经能够绘制的数据之上绘制移动平均线(见下文)
我试图使 m(我的移动平均线)等于 y(我的数据)的长度,然后在我的“for”循环中,我似乎对我的移动平均线有正确的数学。
什么有效:绘制 x 和 y
什么不起作用:在 x 和 y 上绘制 m 并给我这个错误
RuntimeWarning:在 double_scalars 中遇到无效值
我的理论:我将 m 设置为 np.arrays = y.shape 然后创建我的 for 循环以使 m 等于循环内的数学集,从而将所有 0 替换为移动平均值
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import csv
import math
def graph():
date, value = np.loadtxt("CL1.csv", delimiter=',', unpack=True,
converters = {0: mdates.strpdate2num('%d/%m/%Y')})
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1, axisbg = 'white')
plt.plot_date(x=date, y=value, fmt = '-')
y = value
m = np.zeros(y.shape)
for i in range(10, y.shape[0]):
m[i-10] = y[i-10:1].mean()
plt.plot_date(x=date, y=value, fmt = '-', color='g')
plt.plot_date(x=date, y=m, fmt = '-', color='b')
plt.title('NG1 Chart')
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
graph ()