R:在循环中对先前定义的函数使用 "lines" 指令时出错

R : Error when using "lines" instruction for a previously defined function in a loop

我在循环中使用"lines"时遇到问题,该循环用于绘制我定义到循环中的函数。我的目的是绘制 x³、x⁴、x⁵。我留下我的代码,这样你就可以看到哪些问题。

提前致谢。

x <- seq(0,1,0.05)
plot(x,x,type="l",ylab="y")
j <-3
for(j in 3:5){
  f1 <- function(a){
        a^j
        }
  lines(f1)

  j <- j+1
}

对于此类问题,我强烈建议使用 ggplot2 绘图:

library(ggplot2)

df = data.frame(x=x, y=c(x^2,x^3,x^4), func=rep(paste0('x',2:4), each=length(x)))

ggplot(df,aes(x,y,color=func))+geom_line()

部分问题是您在调用 f1(a) 时未指定 a。第二个问题是,当您没有为 'lines()' 指定 x 和 y 值时,x 值被假定为 1:n。因此,该线被绘制但不在同一间隔上。要查看此内容,您可以 运行 以下代码。

x <- seq(0,1,0.05)
plot(x,x,type="l",ylab="y",xlim=c(0,length(x)+1))
j <-3

f1 <- function(a){
  a^j
}

for(j in 3:5){
  lines(f1(x))
}

这里有一些代码可以生成一个简单的图表,所有的线都在相同的区间内。

x <- seq(0,1,0.05)
plot(x,x,type="l",ylab="y")
j <-3

f1 <- function(a){
  a^j
}

for(j in 3:5){
  lines(x,f1(x))
}