在R中的图形上绘制对数曲线 [英] Draw a logarithmic curve on graph in R

查看:80
本文介绍了在R中的图形上绘制对数曲线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have the following set of data and when plotted has a curvilinear relationship

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轴并进行线性回归以找到截距和斜率时,我可以添加一条适合数据的线:

When I log the x axis and do a linear regression to find the intercept and slope I am able to add a line that fits the data:

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)

但是,当我随后进行曲线回归并尝试绘制不适合数据的曲线时,我在哪里出错呢?

However when I then do a curvilinear regression and try to plot the curve it doesn't fit the data, where am I going wrong?

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

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

推荐答案

使用 ggplot2 :

ggplot(three, aes(Habitat.Complexity, Fish.species.richness))+
  geom_point(shape = 1) + stat_smooth(method = "lm", formula = y ~ log(x))

这篇关于在R中的图形上绘制对数曲线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆