[R] Fw: Help needed using lattice for area plots lpolygon, xyplot.
Deepayan Sarkar
deepayan.sarkar at gmail.com
Wed Jun 7 18:19:20 CEST 2006
On 6/7/06, toby_marks at americancentury.com
<toby_marks at americancentury.com> wrote:
> I am trying to learn how to use the graphics from the lattice package (
> and am very new to R).
>
> I am trying to replicate the example plot referenced below, by using the
> lattice xyplot & lpolygon to create panels. I get what appears to be the
> correct shape of the filled region, but cannot get the position to overlay
> properly. I have attempted with various settings of position. ( i.e.
> position = c(0,0,1,1) etc settings as well. I am not understanding
> something about the positioning panels. I am missing some subtle
> difference between polygon & lpolygon, or am missing something about panel
> overlays &/or panel postions.
>
> #http://addictedtor.free.fr/graphiques/graphcode.php?graph=7.
> par(bg="white")
> n <- 100
> set.seed(43214) #just so we have the same exact graph
> x <- c(0,cumsum(rnorm(n)))
> y <- c(0,cumsum(rnorm(n)))
> xx <- c(0:n, n:0)
> yy <- c(x, rev(y))
> plot(xx, yy, type="n", xlab="Time", ylab="Distance")
> polygon(xx, yy, col="gray")
> title("Distance Between Brownian Motions")
>
>
>
> # using lattice.
> p1 <- xyplot( yy~xx,type='l');
> p2 <- lpolygon(xx,yy,col='blue');
> print(p1,position=c(0,0,1,1), more=TRUE);
> print(p2,position=c(0,0,1,1));
You are missing a fundamental concept in lattice, namely that of panel
functions. A literal translation of that example would be
xyplot(yy ~ xx, panel = lpolygon, col = "gray")
which is more or less equivalent to
xyplot(yy ~ xx,
panel = function(x, y, ...) {
# panel.xyplot(x, y, ...) # unnecessary
lpolygon(x, y, col = "gray")
})
The line commented out is the equivalent of plot(...type='n'), but is
unnecessary here.
Deepayan
More information about the R-help
mailing list