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

R语言ggplot2绘图时回归线不显示的原因排查求助

问题原因

你的猜测正确,回归线无法正常显示的核心原因是Date2变量为字符类型:线性回归要求自变量为数值类型,ggplot2也无法对离散的字符型x轴拟合线性趋势。同时你在循环中补充的年份为整数类型,和原字符型Date2混合后会导致变量类型混乱,进一步影响拟合结果。

修复步骤

  1. 转换Date2为数值类型
    在生成daily2汇总表后,新增一行代码将字符型年份转为数值型:
daily2 = ddply(daily, .(site_no, Date2), summarise,
               mean_Flow = mean(Flow)*(0.0283168))
# 新增:将年份转为数值型
daily2$Date2 <- as.numeric(daily2$Date2)
  1. 优化绘图代码
    转换类型后,x轴变为连续数值轴,可以正常拟合线性回归,同时你之前注释的x轴刻度配置也可以正常使用,推荐修改绘图部分代码如下:
p1 = ggplot(daily2,aes(Date2,mean_Flow)) +
  geom_line(group = 1, na.rm = TRUE) + # 新增na.rm=TRUE避免缺失值警告
  geom_smooth(method = "lm", se=FALSE, color="black", formula = y ~ x, na.rm = TRUE) +
  geom_text(x = 1950, y = 700, label = lm_eqn(daily2), parse = TRUE) +
  theme_classic()+
  labs(x="", y=(expression(Discharge~(m^{3}~s^{-1}))))+
  scale_y_continuous(limits = c(0,800))+
  # 恢复x轴配置,每10年设置一个刻度更易读
  scale_x_continuous(limits = c(1900,2021), breaks = seq(1900,2021,10)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

p1

修改完成后运行代码即可正常显示回归线和拟合公式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:15:03