我有一些数据,我想利用NLS使用,以适应非线性模型对数据的每个子集,然后叠加拟合模型到数据点的图表GGPLOT2。具体地,模型的形式为如何绘制从NLS模型拟合的输出GGPLOT2
y~V*x/(K+x)
,你可能识别为米氏的。一种方法是使用geom_smooth,但如果我使用geom_smooth,则无法检索模型拟合的系数。或者,我可以使用nls来拟合数据,然后使用geom_smooth拟合绘制的线条,但是我怎么知道geom_smooth绘制的曲线与我的nls fit所给出的曲线相同?我无法通过从我的NLS系数适合geom_smooth并告诉它使用它们,除非我能得到geom_smooth只使用数据的子集,那么我可以指定起始参数,以便将工作,但每...那时候我已经试过了,我得到一个错误,内容如下:
Aesthetics must be either length 1 or the same as the data (8): x, y, colour
这是我一直在使用一些样本编造数据:
Concentration <- c(500.0,250.0,100.0,62.5,50.0,25.0,12.5,5.0,
500.0,250.0,100.0,62.5,50.0,25.0,12.5,5.0)
drug <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2)
rate <- c(1.889220,1.426500,0.864720,0.662210,0.564340,0.343140,0.181120,0.077170,
3.995055,3.011800,1.824505,1.397237,1.190078,0.723637,0.381865,0.162771)
file<-data.frame(Concentration,drug,rate)
如集是x在我的剧情和速度将是y;药物将是颜色变量。如果我写了下面我得到这个错误:
plot <- ggplot(file,aes(x=file[,1],y=file[,3],color=Compound))+geom_point()
plot<-plot+geom_smooth(data=subset(file,file[,2]==drugNames[i]),method.args=list(formula=y~Vmax*x/(Km+x),start=list(Vmax=coef(models[[i]])[1],Km=coef(models[[i]])[2])),se=FALSE,size=0.5)
其中模型[[]]是由NLS返回模型的参数列表。
我如何能子集geom_smooth数据帧,所以我可以用开始从我的NLS参数适合单独绘制曲线任何想法?
[几个参数GGPLOT2绘图功能]的可能的复制(https://开头stackoverflow.com/questions/42598375/ggplot2-plot-function-with-several-arguments) –
无关,但'plot','file'作为变量名是不是一个好主意(这些名称存在功能)。 – neilfws
另外:这将有助于看到生成'models'的代码。 – neilfws