同时拟合多个图

问题描述

我使用循环从一个数据框中绘制了多个图形。 举个例子。

    x   A   B   C
    0   0   0   0
    0.19    0.001131393 0.001745809 0.001668907
    0.3 0.001429213 0.00049965  0.001148412
    0.4 0.001695406 0.003537125 0.003828002
    0.52    0.008619063 0.006173816 0.005020359
    0.65    0.009701003 0.011902414 0.00692129
    0.78    0.014973553 0.014699063 0.008631738
    0.9 0.022978523 0.025137949 0.010629969
    1   0.038357458 0.035322334 0.013898219
    1.5 0.045039437 0.06393291  0.018679434
    2   0.052570609 0.073514007 0.021755901
    3   0.050651474 0.070495418 0.022576778

par(mfrow = c(1,3)) 
loop.vector <- 2:4
x <- c(0,0.19,0.3,0.4,0.52,0.65,0.78,0.9,1,1.5,2,3)
for (i in loop.vector){
   y <- df[,i]
plot(x,y,main = paste(colnames(df)[i]),}
for (i in loop.vector){
   y <- df[,i]
   fithill <- nls(y~max(y)*x^n/(k^n+x^n),start=list(n=4,k=1))
   summary(fithill)
   curve(predict(fithill,newdata = data.frame(x=x)),add = TRUE)
}

我想将拟合曲线添加到正确的图形中。我该如何解决这个问题?

解决方法

绘制图形后,必须添加曲线。你为什么不这样做呢?

for(i in 2:4){
fithill <- nls(df[,i]~max(df[,i])*x^n/(k^n+x^n),start=list(n=4,k=1))
plot(df[,1],df[,i],main = paste(colnames(df)[i]))
curve(predict(fithill,newdata = data.frame(x=df[,1])),add = TRUE)
}