Draws a curve corresponding to a function over the interval
curve can plot also an expression in the variable
xname, default x.
curve(expr, from = NULL, to = NULL, n = 101, add = FALSE, type = "l", xname = "x", xlab = xname, ylab = NULL, log = NULL, xlim = NULL, ...) ## S3 method for class 'function': plot((x, y = 0, to = 1, from = y, xlim = NULL, ylab = NULL, ...))
- The name of a function, or a call or an expression written as a function of
xwhich will evaluate to an object of the same length as
- a ‘vectorizing’ numeric R function.
- alias for
fromfor compatibility with
- from, to
- the range over which the function will be plotted.
- integer; the number of x values at which to evaluate.
- logical; if
TRUEadd to an already existing plot; if
NAstart a new plot taking the defaults for the limits and log-scaling of the x-axis from the previous plot. Taken as
FALSE(with a warning if a different value is supplied) if no graphics device is open.
NULLor a numeric vector of length 2; if non-
NULLit provides the defaults for
c(from, to)and, unless
add = TRUE, selects the x-limits of the plot -- see
- plot type: see
- character string giving the name to be used for the x axis.
- xlab, ylab, log, ...
- labels and graphical parameters can also be specified as arguments. See ‘Details’ for the interpretation of the default for
NULL, it defaults to the corresponding element of
xlim if that is not
What happens when neither
xlim specifies both x-limits is a complex story. For
plot(<function>) and for
curve(add = FALSE) the defaults are (0, 1). For
curve(add = NA) and
curve(add = TRUE) the defaults are taken from the x-limits used for the previous plot. (This differs from versions of R prior to 2.14.0.)
The value of
log is used both to specify the plot axes (unless
add = TRUE) and how ‘equally spaced’ is interpreted: if the x component indicates log-scaling, the points at which the expression or function is plotted are equally spaced on log scale.
The default value of
log is taken from the current plot when
add = TRUE, whereas if
add = NA the x component is taken from the existing plot (if any) and the y component defaults to linear. For
add = FALSE the default is
This used to be a quick hack which now seems to serve a useful purpose, but can give bad results for functions which are not smooth.
expressions, you should use smarter tools.
expr has caused confusion. It first looks to see if
expr is a name (also known as a symbol), in which case it is taken to be the name of a function, and
expr is replaced by a call to
expr with a single argument with name given by
xname. Otherwise it checks that
expr is either a call or an expression, and that it contains a reference to the variable given by
all.vars): anything else is an error. Then
expr is evaluated in an environment which supplies a vector of name given by
xname of length
n, and should evaluate to an object of length
n. Note that this means that
curve(x, ...) is taken as a request to plot a function named
x (and it is used as such in the
function method for
plot method can be called directly as
A list with components
y of the points that were drawn is returned invisibly.
plot(qnorm) # default range c(0, 1) is appropriate here, # but end values are -/+Inf and so are omitted. plot(qlogis, main = "The Inverse Logit : qlogis()") abline(h = 0, v = 0:2/2, lty = 3, col = "gray") curve(sin, -2*pi, 2*pi, xname = "t") curve(tan, xname = "t", add = NA, main = "curve(tan) --> same x-scale as previous plot") op <- par(mfrow = c(2, 2)) curve(x^3 - 3*x, -2, 2) curve(x^2 - 2, add = TRUE, col = "violet") ## simple and advanced versions, quite similar: plot(cos, -pi, 3*pi) curve(cos, xlim = c(-pi, 3*pi), n = 1001, col = "blue", add = TRUE) chippy <- function(x) sin(cos(x)*exp(-x/2)) curve(chippy, -8, 7, n = 2001) plot (chippy, -8, -5) for(ll in c("", "x", "y", "xy")) curve(log(1+x), 1, 100, log = ll, sub = paste0("log = '", ll, "'")) par(op)
Documentation reproduced from R 3.0.2. License: GPL-2.