在 Python 中使用 matplotlib 转换数组列表以进行绘图
Converting list of arrays for plotting using matplotlib in Python
我正在尝试使用 sklearn 包生成滚动回归,然后使用 matplotlib 绘制它们。
我已经能够生成滚动回归系数,但附加输出导致我难以绘制 3-D 列表。
下面的代码给出了以下错误:
ValueError: x and y can be no greater than 2-D, but have shapes (130,)
and (130, 1, 5)
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.append(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)
是否有方法 'squeezing' 将 3D 列表转换为 2 维,或其他方法,以允许绘制?
您可以通过以下方式重塑数组:
X_reshaped = X.reshape(130, 5)
原来使用 extend()
方法而不是 append()
方法达到了目的。
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.extend(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)
我正在尝试使用 sklearn 包生成滚动回归,然后使用 matplotlib 绘制它们。
我已经能够生成滚动回归系数,但附加输出导致我难以绘制 3-D 列表。
下面的代码给出了以下错误:
ValueError: x and y can be no greater than 2-D, but have shapes (130,) and (130, 1, 5)
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.append(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)
是否有方法 'squeezing' 将 3D 列表转换为 2 维,或其他方法,以允许绘制?
您可以通过以下方式重塑数组:
X_reshaped = X.reshape(130, 5)
原来使用 extend()
方法而不是 append()
方法达到了目的。
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.extend(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)