B_01_xyplot.ts {lattice} | R Documentation |
Time series plotting methods
Description
This function handles time series plotting, including cut-and-stack plots. Examples are given of superposing, juxtaposing and styling different time series.
Usage
## S3 method for class 'ts'
xyplot(x, data = NULL,
screens = if (superpose) 1 else colnames(x),
...,
superpose = FALSE,
cut = FALSE,
type = "l",
col = NULL,
lty = NULL,
lwd = NULL,
pch = NULL,
cex = NULL,
fill = NULL,
auto.key = superpose,
panel = if (superpose) "panel.superpose"
else "panel.superpose.plain",
par.settings = list(),
layout = NULL, as.table = TRUE,
xlab = "Time", ylab = NULL,
default.scales = list(y = list(relation =
if (missing(cut)) "free" else "same")))
Arguments
x |
an object of class |
data |
not used, and must be left as |
... |
additional arguments passed to |
screens |
factor (or coerced to factor) whose levels specify which
panel each series is to be plotted in. |
superpose |
overlays all series in one panel (via |
cut |
defines a cut-and-stack plot.
|
type , col , lty , lwd , pch , cex , fill |
graphical arguments, which are processed and eventually passed to
|
auto.key |
a logical, or a list describing how to draw a key. See the
|
panel |
the panel function. It is recommended to leave this alone, but one
can pass a |
par.settings |
style settings beyond the standard |
layout |
numeric vector of length 2 specifying number of columns and rows in the plot. The default is to fill columns with up to 6 rows. |
as.table |
to draw panels from top to bottom. The order is determined by the
order of columns in |
xlab , ylab |
X axis and Y axis labels; see |
default.scales |
|
Details
The handling of several graphical parameters is more
flexible for multivariate series. These parameters can be
vectors of the same length as the number of series plotted or
are recycled if shorter. They can also be (partially) named list, e.g.,
list(A = c(1,2), c(3,4))
in which c(3, 4)
is the
default value and c(1, 2)
the value only for series A
.
The screens
argument can be specified in a similar way.
Some examples are given below.
Value
An object of class "trellis"
. The
update
method can be used to
update components of the object and the
print
method (usually called by
default) will plot it on an appropriate plotting device.
Author(s)
Gabor Grothendieck, Achim Zeileis, Deepayan Sarkar and Felix Andrews felix@nfrac.org.
The first two authors developed xyplot.ts
in their zoo
package, including the screens
approach. The third author
developed a different xyplot.ts
for cut-and-stack plots in the
latticeExtra package. The final author fused these together.
References
Sarkar, Deepayan (2008) Lattice: Multivariate Data Visualization with R, Springer. http://lmdvr.r-forge.r-project.org/ (cut-and-stack plots)
See Also
xyplot
,
panel.xyplot
,
plot.ts
,
ts
,
xyplot.zoo
in the zoo package.
Examples
xyplot(ts(c(1:10,10:1)))
### Figure 14.1 from Sarkar (2008)
xyplot(sunspot.year, aspect = "xy",
strip = FALSE, strip.left = TRUE,
cut = list(number = 4, overlap = 0.05))
### A multivariate example; first juxtaposed, then superposed
xyplot(EuStockMarkets, scales = list(y = "same"))
xyplot(EuStockMarkets, superpose = TRUE, aspect = "xy", lwd = 2,
type = c("l","g"), ylim = c(0, max(EuStockMarkets)))
### Examples using screens (these two are identical)
xyplot(EuStockMarkets, screens = c(rep("Continental", 3), "UK"))
xyplot(EuStockMarkets, screens = list(FTSE = "UK", "Continental"))
### Automatic group styles
xyplot(EuStockMarkets, screens = list(FTSE = "UK", "Continental"),
superpose = TRUE)
xyplot(EuStockMarkets, screens = list(FTSE = "UK", "Continental"),
superpose = TRUE, xlim = extendrange(1996:1998),
par.settings = standard.theme(color = FALSE))
### Specifying styles for series by name
xyplot(EuStockMarkets, screens = list(FTSE = "UK", "Continental"),
col = list(DAX = "red", FTSE = "blue", "black"), auto.key = TRUE)
xyplot(EuStockMarkets, screens = list(FTSE = "UK", "Continental"),
col = list(DAX = "red"), lty = list(SMI = 2), lwd = 1:2,
auto.key = TRUE)
### Example with simpler data, few data points
set.seed(1)
z <- ts(cbind(a = 1:5, b = 11:15, c = 21:25) + rnorm(5))
xyplot(z, screens = 1)
xyplot(z, screens = list(a = "primary (a)", "other (b & c)"),
type = list(a = c("p", "h"), b = c("p", "s"), "o"),
pch = list(a = 2, c = 3), auto.key = list(type = "o"))