在Python中使用matplotlib转换数组列表以进行绘图

时间:2018-09-27 22:27:54

标签: python python-3.x pandas matplotlib sklearn-pandas

我正在尝试使用sklearn软件包生成滚动回归,然后使用matplotlib将其绘制。

我已经能够产生滚动回归系数,但是附加输出会导致我很难绘制3D列表。

下面的代码给出以下错误:

  

ValueError:x和y不能大于2-D,但形状为(130,)   和(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)

是否有一种方法可以将3D列表“压缩”为二维,或者使用其他方法来进行绘制?

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式重塑阵列:

X_reshaped = X.reshape(130, 5)

答案 1 :(得分:0)

使用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)