plt.plot(df.index[train_size:], df.values[train_size:], label='Real Data') plt.plot(df.index[train_size:], rev, label='Predicted Data')
时间: 2024-04-04 09:34:28 浏览: 46
这段代码使用了 `plt.plot()` 函数绘制了两条曲线,分别代表实际数据和预测数据。
第一条曲线使用了 `df.index[train_size:]` 和 `df.values[train_size:]` 作为 x 轴和 y 轴数据,分别表示实际数据的时间序列和数值。其中,`df.index[train_size:]` 表示时间序列的切片,从第 `train_size` 个时间点开始,一直到最后一个时间点;`df.values[train_size:]` 表示数值的切片,也是从第 `train_size` 个时间点开始,一直到最后一个时间点。
第二条曲线使用了 `df.index[train_size:]` 和 `rev` 作为 x 轴和 y 轴数据,分别表示预测数据的时间序列和数值。其中,`df.index[train_size:]` 表示时间序列的切片,与第一条曲线保持一致;`rev` 表示预测数据的数值序列,即经过反向恢复后的原始序列。
这两条曲线分别用 `'Real Data'` 和 `'Predicted Data'` 作为标签,通过 `label` 参数传递给 `plt.plot()` 函数,最后使用 `plt.legend()` 函数添加图例,方便对比。
相关问题
解释代码diff_rev = scaler.inverse_transform(np.pad(np.cumsum(np.pad(pred, (2,0), mode='constant')), (2,0), 'constant')[:, np.newaxis]) rev = np.zeros_like(diff_rev) rev[0], rev[1] = df.iloc[train_size-2][0], df.iloc[train_size-1][0] rev[2:] = diff_rev[:-2] # 输出对比图 plt.plot(df.index[train_size:], df.values[train_size:], label='Real Data') plt.plot(df.index[train_size:], rev, label='Predicted Data') plt.legend() plt.show()
这段代码的作用是将经过预测得到的差分序列反向恢复为原始序列,并将预测结果与原始数据绘制在同一图表中,方便对比。
具体来说,代码中首先使用 `scaler.inverse_transform()` 函数将预测结果 `pred` 进行反归一化处理,得到经过反归一化处理的差分序列 `diff_rev`。这里使用了 `np.pad()` 函数对 `pred` 进行了前置填充,以便后续计算累计和时得到正确的结果。
然后,代码中定义一个与 `diff_rev` 大小相同的零矩阵 `rev`,将 `df` 中的前两个元素赋值给 `rev` 的前两个元素,再将 `diff_rev` 的前两个元素去掉,赋值给 `rev` 的后面部分,从而得到反向恢复后的原始序列 `rev`。
最后,使用 `plt.plot()` 函数将实际数据和预测数据绘制在同一张图表上,并使用 `plt.legend()` 函数添加图例,方便对比。
阅读全文