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

R语言如何在散点图中根据已知回归方程绘制回归直线

R绘图添加已知截距斜率回归直线实现方法

你不需要手动生成直线上的点坐标,R的绘图系统内置了直接按截距、斜率参数绘制直线的函数,直接调用即可完成需求。


基础R绘图实现代码

保留你之前计算非参数回归参数mdns(斜率)、mdni(截距)的代码,后续直接追加以下绘图代码即可:

# 拟合普通lm线性回归
lm_model <- lm(y_book ~ x_book, data = data1)

# 绘制原始数据散点图
plot(
  x = data1$x_book, 
  y = data1$y_book,
  xlab = "X取值",
  ylab = "Y取值",
  main = "两种回归方法拟合效果对比",
  pch = 16,
  col = "#666666"
)

# 添加lm拟合的回归直线
abline(lm_model, col = "#2c7fb8", lwd = 2, lty = 1)

# 添加非参数回归直线,直接传入已算出的截距、斜率
abline(a = mdni, b = mdns, col = "#d95f02", lwd = 2, lty = 2)

# 添加图例区分两条直线
legend(
  "topright",
  legend = c("lm普通线性回归", "非参数中位数斜率回归"),
  col = c("#2c7fb8", "#d95f02"),
  lwd = 2,
  lty = c(1, 2)
)

核心函数说明

abline()是基础绘图系统专门用于添加直线的函数,支持两种常用传参方式:

  • 直接传入lm拟合的模型对象,函数会自动提取模型的截距、斜率绘制对应直线
  • 手动传参:a参数对应直线截距,b参数对应直线斜率,函数会自动在当前绘图的X轴取值范围内,按照y = a + b*x的方程绘制完整直线,无需手动构造坐标点。

ggplot2绘图实现代码

如果你用ggplot2绘图,逻辑完全一致,对应代码如下:

library(ggplot2)

ggplot(data1, aes(x = x_book, y = y_book)) +
  geom_point(color = "#666666", size = 2) +
  # 添加lm回归直线
  geom_smooth(method = "lm", se = FALSE, color = "#2c7fb8", linewidth = 1, linetype = 1) +
  # 添加非参数回归直线
  geom_abline(intercept = mdni, slope = mdns, color = "#d95f02", linewidth = 1, linetype = 2) +
  labs(
    x = "X取值",
    y = "Y取值",
    title = "两种回归方法拟合效果对比"
  ) +
  theme_bw()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:03:26