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

Jupyter中matplotlib绘制的散点图与线性回归线无法叠加显示

问题解决方案

问题原因

你给出的代码逻辑本身是支持散点和回归线叠加显示的,出现二者分开显示的问题通常是两种原因:

  • 你把plt.scatter()和plt.plot()两行代码放在了不同的Jupyter单元格单独执行,每次执行绘图语句都会生成新的画布
  • 你的X轴数据是无序的,导致plt.plot()绘制出来的是杂乱折线,被你误认为是单独的回归线图像

修复方案

方案1:调整现有代码执行逻辑+优化适配

把所有绘图相关代码放在同一个单元格执行,同时如果X是无序的,额外增加排序步骤,避免折线异常:

%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import numpy as np # 新增用于排序

linear_regressor = LinearRegression()

X = fish_df.iloc[:,2].values.reshape(-1,1)
Y = fish_df.iloc[:,4].values.reshape(-1,1)

linear_regressor.fit(X, Y)

# 新增:对X排序后再做预测,保证回归线是连续直线
X_sorted = np.sort(X, axis=0)
Y_pred = linear_regressor.predict(X_sorted)

# 所有绘图语句在同一段代码内执行
plt.scatter(X,Y, color="green")
plt.plot(X_sorted, Y_pred, color="red")
plt.show()

方案2:使用seaborn的regplot一键生成带回归线的散点图

如果不想自己写线性回归逻辑,可直接用seaborn封装好的接口,代码更简洁:

%matplotlib inline
import seaborn as sns
import matplotlib.pyplot as plt

sns.regplot(x=fish_df.iloc[:,2], y=fish_df.iloc[:,4], color='green', line_kws={'color': 'red'})
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:09:05