Python如何绘制不同X轴的两组数据并实现train与test曲线连续展示
问题根因
报错ValueError: x and y must have same first dimension由两个问题共同导致:
- 长度不匹配:
np.arange(39,60)生成的是21个元素的一维数组,但你的test数据集有23个样本,二者长度不一致 - 维度不匹配:
test的形状是(23,1)的二维数组,pyplot.plot要求输入的y参数是一维数组,二维结构无法直接匹配x的维度
解决步骤
- 先将
test数组降为一维,用squeeze()去掉多余的空维度 - 不用手动计算x的起止数值,直接用
len(test)动态生成匹配长度的x轴序列,避免手动数错数字
修正后代码
# 绘制训练集曲线 pyplot.plot(np.arange(1, 39), train, color="blue") # 动态生成测试集对应的x轴,同时将test降为一维 pyplot.plot(np.arange(39, 39 + len(test)), test.squeeze(), color="red") pyplot.show()
补充说明
如果确认你的测试集长度本身就应该是21个,那就要检查你生成test数据集的代码,确认是不是多取了2个多余的样本,优先保证数据本身的长度符合预期,再用上述代码绘制即可。
内容的提问来源于stack exchange,提问作者Dávid Kókai
相关产品推荐
相关产品推荐

