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

线性回归绘图中绘制竖线失败,遇‘object y not found’报错求助

ggplot线性回归图添加竖线及报错修复

报错原因

你碰到的! object 'y' not found警告,是第二个图p2里的geom_smooth出了问题:

  • 你的全局映射是aes(x = x, y = y),但geom_smooth里写了formula= x~y——ggplot的stat_smooth默认把y轴变量当响应变量,你把x设成响应变量的反向写法,会导致计算时变量匹配混乱,触发找不到y的错误。

添加竖线+修复报错的完整代码

要画竖线(比如x=8.74),直接用geom_vline()就行,同时把p2的回归逻辑修正,代码如下:

# 图1:Y对X回归 + 竖线
p1 <- ggplot(df, aes(x = x, y = y))+
  geom_point(col = "blue")+
  geom_smooth(method='lm', formula= y~x, se = F, col = "black")+
  # 新增竖线,参数可按需调整
  geom_vline(xintercept = 8.74, col = "red", linetype = "dashed")+
  theme_bw()+
  theme(strip.text = element_text(size = 16),
        axis.title= element_text(size = 14),
        legend.position = "none")+
  labs(title = "Y sobre X")+
  annotate('text', x = median(df$x), y = max(df$y)+sd(df$y)/2, label = label_y,
           family= theme_get()$text[["family"]],
           size= theme_get()$text[["size"]]/2.5,
           fontface="italic")

# 图2:X对Y回归(修复报错) + 竖线
p2 <- ggplot(df, aes(x = y, y = x))+  # 交换x/y映射,匹配回归逻辑
  geom_point(col = "blue")+
  geom_smooth(method='lm', formula= y~x, se = F, col = "black")+
  # 这里的xintercept要对应当前x轴(原数据的y变量),按需调整
  geom_vline(xintercept = 8.74, col = "red", linetype = "dashed")+
  theme_bw()+
  theme(strip.text = element_text(size = 16),
        axis.title= element_text(size = 14),
        legend.position = "none")+
  labs(title = "X sobre Y")+
  annotate('text', x = median(df$y), y = max(df$x)+sd(df$x)/2, label = label_x,
           family= theme_get()$text[["family"]],
           size= theme_get()$text[["size"]]/2.5,
           fontface="italic")

关键说明

  1. 修复p2报错:要做X对Y的回归,直接交换全局映射的x和y(aes(x = y, y = x)),同时保持formula= y~x,这样符合ggplot“y轴是响应变量”的逻辑,不会再出现变量找不到的问题。
  2. 竖线设置:geom_vline(xintercept = 数值)是ggplot画竖线的标准方法,还能通过linetype(比如虚线"dashed")、size、col参数调整样式。
  3. p2竖线注意:如果p2的x轴换成了原数据的y变量,你要确认竖线的xintercept是对应原x的8.74,还是当前x轴的某个值,根据需求修改数值就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:35:11