问题描述
我使用循环从一个数据框中绘制了多个图形。 举个例子。
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)
}