在R中的图上绘制对数曲线

时间:2015-08-26 12:03:58

标签: r ggplot2 regression curve-fitting

我有以下数据集,并且绘制时具有曲线关系

Fish.species.richness   Habitat.Complexity  log.habitat
17  0.6376  -0.1954858
13  0.2335  -0.6317131
30  0.2866  -0.5427238
20  0.3231  -0.4906630
22  0.1073  -0.9694003
25  0.2818  -0.5500590
2   0.2182  -0.6612448
4   0.0189  -1.7246886
19  0.2960  -0.5287083
25  0.5507  -0.2590849
29  0.2689  -0.5704900
21  0.6286  -0.2016602
18  0.1557  -0.8078509
24  0.6851  -0.1642460
30  0.5059  -0.2959353
32  0.4434  -0.3532043
29  0.3585  -0.4455108
32  0.5920  -0.2276783

当我记录x轴并进行线性回归以找到截距和斜率时,我能够添加一条适合数据的线:

summary(lm(Fish.species.richness~log.habitat,data=three))

plot(three$log.habitat,
 three$Fish.species.richness,
 xlab='Log Habitat Complexity',
 ylab='Fish Species Richness')
abline(29.178,13.843)

然而,当我进行曲线回归并尝试绘制曲线时,它不符合数据,我哪里出错?

mod.log<-lm(Fish.species.richness~log(Habitat.Complexity),data=three)

plot(three$Habitat.Complexity,
 three$Fish.species.richness)
abline(mod.log)

1 个答案:

答案 0 :(得分:1)

abline只能在 y = a + bx 表单上绘制直线。可以使用curve函数添加其他曲线。

plot(Fish.species.richness ~ Habitat.Complexity, three)
curve(coef(mod.log)[1] + coef(mod.log)[2]*log(x), add=TRUE)

Logarithmic curve fit