You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python线性回归绘图报错:ValueError维度不匹配问题求助

解决线性回归绘图时的维度不匹配错误

嗨,我看到你在绘制线性回归拟合线的时候遇到了维度不匹配的问题,咱们一步步来解决它!

首先看报错信息,已经把问题说得很清楚了:

ValueError: x and y must have same first dimension, but have shapes (10, 1) and (1, 1)

你的x轴数据(linear_x)是包含10个样本的数组,但传给plt.plot()的y轴数据却只有1个值,两者长度不匹配,Matplotlib自然没法画出一条完整的直线。

问题根源在哪行?

就是这行代码出了问题:

plt.plot(linear_x,linear_regression.predict([[1800]]),color='blue')

predict([[1800]])只会返回x=1800这单个值对应的预测结果,而你需要的是所有x值对应的回归预测值,这样才能和linear_x一一对应,画出完整的拟合直线。

修正方案

把这行代码改成:

plt.plot(linear_x, linear_regression.predict(linear_x), color='blue')

linear_regression.predict(linear_x)会生成和linear_x长度完全一致的预测y值,维度匹配后就能正常绘制拟合直线了。

完整修正后的代码

linear_regression = lm.LinearRegression()
linear_x = data.Luas.values.reshape(-1,1)
linear_y = data.Harga.values.reshape(-1,1)
linear_regression.fit(linear_x,linear_y)
print("Intercept = ",linear_regression.intercept_)
print("Coefisien = ",linear_regression.coef_)
print("Persamaan menggunakan fungsi Linear Regression :")
print("Y=",linear_regression.intercept_,"+",linear_regression.coef_,"X")
print("Prediksi Luas Tanah (X) = 1800")
print("Maka:")
result = linear_regression.predict([[1800]])
print("Harga Tanah(Y) = ",result,"jt")
plt.scatter(linear_x,linear_y,color='black')
# 修正后的拟合直线绘制代码
plt.plot(linear_x, linear_regression.predict(linear_x), color='blue')
plt.title('Luas Tanah/Area VS Harga/Price')
plt.ylabel('Harga Tanah/Price (jt)')
plt.xlabel('Luas Tanah/Area')
plt.show()

额外小技巧(可选)

如果你想在图上突出标记x=1800的预测点,可以在plt.show()之前加一行代码:

plt.scatter(1800, result, color='red', marker='*', s=100)

这样就能用红色星号把这个预测点显眼地标注出来啦~

内容的提问来源于stack exchange,提问作者Thoriqul Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:43:11