f1<-function(t)
{
sqrt((t^2)+1)
}
curve(f1,from=0,to = 5,n=10)
plot(f1,from=0,to = 5,n=10)
提供相同的输出。那么,曲线和曲线函数有什么区别?
答案 0 :(得分:5)
功能不是很多。 plot
最终会调用curve
。
plot
是一个泛型函数,这意味着它有多种方法,具体取决于传递给它的对象的类(在这种情况下为函数)。要查找特定方法背后的代码,可以键入graphcs:::plot.<method>
。
在这种情况下,您可以看到plot
应用于函数时,首先检查并调整其参数,然后才最终调用curve
。
> graphics:::plot.function
function (x, y = 0, to = 1, from = y, xlim = NULL, ylab = NULL,
...)
{
if (!missing(y) && missing(from))
from <- y
if (is.null(xlim)) {
if (is.null(from))
from <- 0
}
else {
if (missing(from))
from <- xlim[1L]
if (missing(to))
to <- xlim[2L]
}
if (is.null(ylab)) {
sx <- substitute(x)
ylab <- if (mode(x) != "name")
deparse(sx)[1L]
else {
xname <- list(...)[["xname"]]
if (is.null(xname))
xname <- "x"
paste0(sx, "(", xname, ")")
}
}
curve(expr = x, from = from, to = to, xlim = xlim, ylab = ylab,
...)
}