找回密码
 注册
查看: 9305|回复: 5

R软件如何做多项式拟合线

[复制链接]
发表于 2011-9-29 22:54:18 | 显示全部楼层 |阅读模式
需要加载额外的程序包么
运行下面的代码
m1<-lm(resp~dose,data=datanew)
lines(fitted(m1)~dose,data=datanew,col="red")
一直出现这样的错误 “误于plot.xy(xy.coords(x, y), type = type, ...) : 还没有调用plot.new ”
数据格式是这样的
dose   resp
1         0.2
1         0.3
2         0.5
2         0.53
3         0.7
3         0.9
请教下是出什么问题了
回复

使用道具 举报

发表于 2011-10-6 05:07:59 | 显示全部楼层
datanew = matrix(0,nrow=6,ncol=2)
你应该先用,plot函数,开一个图,然后再在这个图里画不同的lines,points,我写了一个小的程序,你可以试试,应该就解决你的问题了。
datanew[,1] = c(1,1,2,2,3,3)
datanew[,2] = c(0.2,0.3,0.5,0.53,0.7,0.9)

datanew = data.frame(datanew)

colnames(datanew) = c("dose","resp")

m1<-lm(resp~dose,data=datanew)
plot(datanew$dose,fitted(m1),xlim=c(1,3),ylim=c(0,1),type="n")
lines(fitted(m1)~dose,data=datanew,col="red")
points(datanew[,1],datanew[,2],col="blue")

dev.off()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-6 18:41:35 | 显示全部楼层
yzharold 发表于 2011-10-6 05:07
datanew = matrix(0,nrow=6,ncol=2)
你应该先用,plot函数,开一个图,然后再在这个图里画不同的lines,po ...

lines函数不能直接做多项式拟合么,为什么要先Plot出散点,然后才可行呢?
回复 支持 反对

使用道具 举报

发表于 2011-10-15 10:48:41 | 显示全部楼层
lines属于低级绘图函数,只能加在已经绘出的图形上,所以需要先使用plot画个图出来放在那里,就算设置为"NA"也可以
回复 支持 反对

使用道具 举报

发表于 2011-10-29 00:15:37 | 显示全部楼层
很好,学到了一招
回复 支持 反对

使用道具 举报

发表于 2011-12-5 09:26:11 | 显示全部楼层
lines只能画图的,要是求你的线性模型的估计的话,就要用glm(),或者lm()。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-25 00:17 , Processed in 0.026959 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表