Нет подогнанных кривых с предупреждением: "ggplot2: stat_smooth предупреждений: вычисление не удалось в" stat_smooth () `: объект 'weight' not found" - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь подогнать нелинейные кривые к списку диаграмм рассеяния.Я использую «GNLS», чтобы соответствовать нелинейной модели.'gnls' работает хорошо, но когда я попытался использовать его как плавный метод в ggplot2.Он выдает предупреждение: Ошибка вычисления stat_smooth(): объект 'weight' не найден.А выделенные линии не показаны на графиках.Вот мои коды:

library(nlme)
library(ggplot2)
Specie <- c(rep("Soybean", 10), rep("Wheat", 10))
Total.biomass <- c(25, 65, 175, 290, 440, 600, 750, 840, 911, 920, 2100, 35, 120, 400, 1000, 1150, 1400, 1600, 1700, 1695)
LMF <- c(0.67,0.6,0.455,0.465,0.415,0.337,0.271,0.220,0.180,0.171,0.115,0.6,0.56,0.47,0.28,0.22,0.19,0.14,0.11,0.115)

dat_LMF <- data.frame(Specie, Total.biomass, LMF)

exp_decay <- function(a, b, x){
  return(a*exp(-b*x))
}

fit1 <- gnls(LMF~exp_decay(a, b, Total.biomass), data=dat_LMF, 
             params = list(a+b~Specie), 
             start = c(0.6, rep(0, 1),0.0025,rep(0,1)))

ggplot(data = dat_LMF, aes(x=Total.biomass, y=LMF)) + 
  geom_point()+
  facet_wrap(~Specie, scale="free_x")+
  stat_smooth(method = "gnls", formula=y~exp_decay(a, b, x), 
              method.args=list(params = list(a+b~Specie),start=c(0.6, rep(0, 1),0.0025,rep(0,1))), se=F)

У кого-нибудь есть опыт использования нелинейного гладкого метода в ggplot?Спасибо!

...