| 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)