Линейное соответствие на графике log-log не является прямой линией, поэтому функция аблирования не будет работать с опцией по умолчанию.Вам нужно будет использовать функцию прогнозирования и вручную нарисовать линию на графике или изменить параметры по умолчанию в функции аблайна.
d1<-read.table(header=TRUE, text="Environment Min_light_reqs Leaf_lifespan
Shade 1.4 3.5
Shade 3.48 0.7
Shade 0.71 3.8
Shade 3.18 1.4
Shade 2.50 2.2
Shade 1.46 2.5 ")
shade_lm3 <- lm(Leaf_lifespan ~ Min_light_reqs, data = d1)
#create the prediction dataframe
p<-data.frame(Min_light_reqs=seq(0.1, 5, 0.2))
p$out<-predict(shade_lm3, p )
plot(d1$Leaf_lifespan ~ d1$Min_light_reqs, log="xy", pch=21, col="black", bg="white",
xlim=c(0.5, 5), ylim = c(0.5, 10), cex=2, xaxt="n", yaxt="n", cex.lab=1.7)
points(d1$Leaf_lifespan ~ d1$Min_light_reqs, pch=21, col="black",
bg="black", cex=2)
#abline(shade_lm3) #does not work with log axis
#plot the prediction
lines(x=p$Min_light_reqs, y=p$out)
axis(1, tick=TRUE, line=0, at=c(0.5, 1, 2, 5), labels=c(0.5, 1, 2, 5))
axis(2, tick=TRUE, line=0, at=c(0.5, 1, 2, 5, 10), labels=c(0.5, 1, 2, 5, 10))
Редактировать: Поскольку ось преобразуется,Функция abline имеет опцию untf
, установка ее в TRUE также правильно проведет линию.
abline(shade_lm3, untf = TRUE)