plot.fd | R Documentation |
Functional data observations, or a derivative of them, are plotted.
These may be either plotted simultaneously, as matplot
does for
multivariate data, or one by one with a mouse click to move from one
plot to another. The function also accepts the other plot
specification arguments that the regular plot
does. Calling
plot
with an fdSmooth
or an fdPar
object plots its fd
component.
## S3 method for class 'fd'
plot(x, y, Lfdobj=0, href=TRUE, titles=NULL,
xlim=NULL, ylim=NULL, xlab=NULL,
ylab=NULL, ask=FALSE, nx=NULL, axes=NULL, ...)
## S3 method for class 'fdPar'
plot(x, y, Lfdobj=0, href=TRUE, titles=NULL,
xlim=NULL, ylim=NULL, xlab=NULL,
ylab=NULL, ask=FALSE, nx=NULL, axes=NULL, ...)
## S3 method for class 'fdSmooth'
plot(x, y, Lfdobj=0, href=TRUE, titles=NULL,
xlim=NULL, ylim=NULL, xlab=NULL,
ylab=NULL, ask=FALSE, nx=NULL, axes=NULL, ...)
x |
functional data object(s) to be plotted. |
y |
sequence of points at which to evaluate the functions 'x' and plot on the horizontal axis. Defaults to seq(rangex[1], rangex[2], length = nx). NOTE: This will be the values on the horizontal axis, NOT the vertical axis. |
Lfdobj |
either a nonnegative integer or a linear differential operator object. If present, the derivative or the value of applying the operator is plotted rather than the functions themselves. |
href |
a logical variable: If |
titles |
a vector of strings for identifying curves |
xlab |
a label for the horizontal axis. |
ylab |
a label for the vertical axis. |
xlim |
a vector of length 2 containing axis limits for the horizontal axis. |
ylim |
a vector of length 2 containing axis limits for the vertical axis. |
ask |
a logical value: If |
nx |
the number of points to use to define the plot. The default is usually enough, but for a highly variable function more may be required. |
axes |
Either a logical or a list or
|
... |
additional plotting arguments that can be used with function
|
Note that for multivariate data, a suitable array must first be
defined using the par
function.
'done'
a plot of the functional observations
Ramsay, James O., Hooker, Giles, and Graves, Spencer (2009), Functional data analysis with R and Matlab, Springer, New York.
Ramsay, James O., and Silverman, Bernard W. (2005), Functional Data Analysis, 2nd ed., Springer, New York.
Ramsay, James O., and Silverman, Bernard W. (2002), Applied Functional Data Analysis, Springer, New York.
lines.fd
, plotfit.fd
oldpar <- par(no.readonly=TRUE)
##
## plot.fd
##
daybasis65 <- create.fourier.basis(c(0, 365), 65,
axes=list("axesIntervals"))
harmaccelLfd <- vec2Lfd(c(0,(2*pi/365)^2,0), c(0, 365))
harmfdPar <- fdPar(fd(matrix(0, daybasis65$nbasis,1), daybasis65),
harmaccelLfd, lambda=1e5)
daytempfd <- with(CanadianWeather, smooth.basis(day.5,
dailyAv[,,"Temperature.C"], daybasis65)$fd)
# plot all the temperature functions for the monthly weather data
plot(daytempfd, main="Temperature Functions")
if (!CRAN()) {
# To plot one at a time:
# The following pauses to request page changes.
plot(daytempfd, ask=TRUE)
}
##
## plot.fdSmooth
##
b3.4 <- create.bspline.basis(nbasis=4, norder=3, breaks=c(0, .5, 1))
# 4 bases, order 3 = degree 2 =
# continuous, bounded, locally quadratic
fdPar3 <- fdPar(fd(matrix(0,4,1), b3.4), lambda=1)
# Penalize excessive slope Lfdobj=1;
# (Can not smooth on second derivative Lfdobj=2 at it is discontinuous.)
fd3.4s0 <- smooth.basis(0:1, 0:1, fdPar3)
# using plot.fd directly
plot(fd3.4s0$fd)
##
## with Date and POSIXct argvals
##
# Date
invasion1 <- as.Date('1775-09-04')
invasion2 <- as.Date('1812-07-12')
earlyUS.Canada <- as.numeric(c(invasion1, invasion2))
BspInvasion <- create.bspline.basis(earlyUS.Canada)
earlyUSyears <- seq(invasion1, invasion2, length.out=7)
earlyUScubic <- (as.numeric(earlyUSyears-invasion1)/365.24)^3
earlyUSyears <- as.numeric(earlyUSyears)
fitCubic <- smooth.basis(earlyUSyears, earlyUScubic, BspInvasion)$fd
plot(fitCubic)
# POSIXct
AmRev.ct <- as.POSIXct1970(c('1776-07-04', '1789-04-30'))
AmRevYrs.ct <- seq(AmRev.ct[1], AmRev.ct[2], length.out=14)
AmRevLin.ct <- as.numeric(AmRevYrs.ct-AmRev.ct[2])
AmRevYrs.ct <- as.numeric(AmRevYrs.ct)
BspRev.ct <- create.bspline.basis(AmRev.ct)
fitLin.ct <- smooth.basis(AmRevYrs.ct, AmRevLin.ct, BspRev.ct)$fd
plot(fitLin.ct)
par(oldpar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.