[R] lattice draw.key(): position of key in panels
Boris.Vasiliev at forces.gc.ca
Boris.Vasiliev at forces.gc.ca
Wed Jan 26 15:52:14 CET 2011
Good morning,
This problem was already addressed in a previous post:
https://stat.ethz.ch/pipermail/r-help/2009-February/187244.html
In the call to draw.key() use
'vp=viewport(x=unit(0.1,"npc"),y=unit(0.1,"npc"))'.
Prior to calling viewport() make sure grid package is loaded.
Apologies for cluttering the mail list.
Regards,
Boris Vasiliev.
> -----Original Message-----
> From: Vasiliev B at CEFCOM HQ at Ottawa-Hull
> Sent: Tuesday, 25, January, 2011 16:22 PM
> To: 'r-help at r-project.org'
> Subject: lattice draw.key(): position of key in panels
>
> Good afternoon,
>
> I am working on a plot that requires custom legends to be
> placed in some panels of the plot; other panels do not
> contain legends. The problem that I run into is positioning
> of the legend in individual panels. In particular, the 'x'
> and 'y' elements of the key-list are ignored by draw.key()
> when it is called from inside a panel function. As a result,
> the legend is placed in the middle of the panel. The example
> below illustrates this problem.
>
> df <- data.frame(x=c(1,1),y=c(1,2),type=c("A","B"))
>
> panel.xyplot.x <- function(...) {
> # draw data
> panel.xyplot(...)
>
> # create key-list
> pnlid <- panel.number()
> lbl <- ifelse(pnlid==1,"AA","BB")
> pts <- Rows(trellis.par.get("superpose.symbol"),pnlid)
> key <- list(points=pts,text=list(lbl),x=0.1,y=0.9,corner=c(0,1))
>
> # draw key
> draw.key(key,draw=TRUE)
> }
>
> oltc <- xyplot(y~x|type,data=df,panel=panel.xyplot.x)
> print(oltc)
>
> I tried using 'vp=current.viewport()' in the call to
> draw.key() but it did not help. Can anybody suggest the
> proper way to specify position of the key-list so that it is
> respected by draw.key() when called within a panel function?
>
> Sincerely,
> Boris Vasiliev.
More information about the R-help
mailing list