grid.function {grid} | R Documentation |
Draw a curve representing a function.
grid.function(...) functionGrob(f, n = 101, range = "x", units = "native", name = NULL, gp=gpar(), vp = NULL) grid.abline(intercept, slope, ...)
f |
A function that must take a single argument
and return a list with two numeric components named |
n |
The number values that will be generated as input
to the function |
range |
Either |
units |
A string indicating the units to use
for the |
intercept |
Numeric. |
slope |
Numeric. |
... |
Arguments passed to |
name |
A character identifier. |
gp |
An object of class |
vp |
A Grid viewport object (or NULL). |
n
values are generated and passed to the function f
and a series of lines are
drawn through the resulting x
and y
values.
The generation of the n
values depends on the value of
range
. In the default case, dim
is
"x"
, which means that a set
of x
values are generated covering the range of the current
viewport scale in the x-dimension. If dim
is "y"
then values are generated from the current y-scale instead.
If range
is a numeric vector, then values are generated
from that range.
grid.abline()
provides a simple front-end for a straight
line parameterized by intercept
and slope
.
A functiongrob grob.
Paul Murrell
# abline # NOTE: in ROOT viewport on screen, (0, 0) at top-left # and "native" is pixels! grid.function(function(x) list(x=x, y=0 + 1*x)) # a more "normal" viewport with default normalized "native" coords grid.newpage() pushViewport(viewport()) grid.function(function(x) list(x=x, y=0 + 1*x)) # slightly simpler grid.newpage() pushViewport(viewport()) grid.abline() # sine curve grid.newpage() pushViewport(viewport(xscale=c(0, 2*pi), yscale=c(-1, 1))) grid.function(function(x) list(x=x, y=sin(x))) # constrained sine curve grid.newpage() pushViewport(viewport(xscale=c(0, 2*pi), yscale=c(-1, 1))) grid.function(function(x) list(x=x, y=sin(x)), range=0:1) # inverse sine curve grid.newpage() pushViewport(viewport(xscale=c(-1, 1), yscale=c(0, 2*pi))) grid.function(function(y) list(x=sin(y), y=y), range="y") # parametric function grid.newpage() pushViewport(viewport(xscale=c(-1, 1), yscale=c(-1, 1))) grid.function(function(t) list(x=cos(t), y=sin(t)), range=c(0, 9*pi/5)) # physical abline grid.newpage() grid.function(function(x) list(x=x, y=0 + 1*x), units="in")