as.layer {latticeExtra} | R Documentation |
Overlay panels of Trellis plots on same or different scales
Description
Allows overlaying of Trellis plots, drawn on the same scales or on different scales in each of the x and y dimensions. There are options for custom axes and graphical styles.
Usage
as.layer(x, ...)
## S3 method for class 'trellis'
as.layer(x, x.same = TRUE, y.same = TRUE,
axes = c(if (!x.same) "x", if (!y.same) "y"), opposite = TRUE,
outside = FALSE, theme = x$par.settings, ...)
Arguments
x |
a trellis object. |
x.same |
retains the existing panel x scale for the new layer, rather than using the layer's native x scale. |
y.same |
retains the existing panel y scale. |
axes |
which of the axes to draw ( |
opposite |
whether to draw axes on the opposite side to normal: that is, the top and/or right sides rather than bottom and/or left. May be a vector of length 2 to specify for x and y axes separately. |
outside |
whether to draw the axes outside the plot region. Note that space for outside axes will not be allocated automatically. May be a vector of length 2 to specify for x and y axes separately. |
theme |
passed to |
... |
passed to |
Details
Panels from the trellis object x
will be drawn in the
corresponding panel of another trellis object, so packet numbers match
(see examples).
Axis setting are taken from the trellis object x
, so most
scales
arguments such as draw
, at
, labels
etc will
carry over to the overlaid axes. Only the main axis settings are used
(i.e. left or bottom), even when opposite = TRUE
.
Currently, outside top axes will be drawn in the strip if there are strips.
Value
an updated trellis object.
Author(s)
Felix Andrews felix@nfrac.org
See Also
doubleYScale
,
layer
,
panel.axis
Examples
b1 <- barley
b2 <- barley
b2$yield <- b2$yield + 10
## panels are matched up by packet number
dotplot(variety ~ yield | site * year, b1) +
as.layer(dotplot(variety ~ yield | site * year, b2, col = "red"))
## which gives the same result as:
dotplot(variety ~ yield | site * year, data = b1, subscripts = TRUE) +
layer(panel.dotplot(yield[subscripts], variety[subscripts], col = "red"),
data = b2)
## example with all same scales (the default):
xyplot(fdeaths ~ mdeaths) +
as.layer(xyplot(fdeaths ~ mdeaths, col = 2, subset = ldeaths > 2000))
## same x scales, different y scales:
xyplot(fdeaths ~ mdeaths) +
as.layer(bwplot(~ mdeaths, box.ratio = 0.2), y.same = FALSE)
## same y scales, different x scales:
xyplot(fdeaths ~ mdeaths) +
as.layer(bwplot(fdeaths ~ factor(mdeaths*0), box.ratio = 0.2), x.same = FALSE)
## as.layer() is called automatically if two plots are added:
histogram(~ ldeaths, type = "density") + densityplot(~ ldeaths, lwd = 3)
## applying one panel layer to several panels of another object
xyplot(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width | Species,
data = iris, scales = "free") +
as.layer(levelplot(volcano), x.same = FALSE, y.same = FALSE, under = TRUE)