在 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)