Deepayan Sarkar wrote:
On Wed, Feb 4, 2009 at 8:21 AM, Iago Mosqueira iago.mosque...@gmail.com
wrote:
Hello,
I am trying to draw a key inside a single panel in a lattice xyplot. The
panel function uses panel.number() to use a slightly different style for
one of the panels. Once inside than panel I am using
draw.key(list(text=list(lab='catch'),
lines=list(lwd=c(2)),
text=list(lab='landings'),
rectangles=list(col=rgb(0.1, 0.1, 0, 0.1)),
x=0, y=1, corner=c(0,0)), draw=TRUE)
which gets me the key right in the middle of the panel. I would like to
have at the top or bottom. Changes to the values of x, y or corner do
not seem to change the position at all.
lattice.getOption(legend.bbox) returns 'panel'.
I am quit sure I am missing something essential, but can this be done
without calling directly grid methods?
No. The placement controls such as x, y, and corner are not handled by
draw.key itself, but rather by the high-level plotting function. Used
directly, draw.key() basically gives you a low-level grid grob, and
you need to use grid tools to do anything with them ('draw=TRUE'
simply calls grid.draw() on the grob before returning it). The
simplest way to change position is to supply a simple 'vp' argument.
xyplot(1~1,
panel = function(...) {
require(grid)
panel.xyplot(...)
draw.key(list(text=list(lab='catch'),
lines=list(lwd=c(2)),
text=list(lab='landings'),
rectangles=list(col=rgb(0.1, 0.1, 0, 0.1))),
draw = TRUE,
vp = viewport(x = unit(0.75, npc), y = unit(0.9,
npc)))
})
More complex positioning (perhaps depending on the size of the
legend) will need more work.
-Deepayan
Thanks so much. This works perfectly.
One other thing that has so far eluded me is how to specify two
different kinds of symbols on a single column. The key above shows
text line text rectangle
but I would really like to get
text line
text rectangle
but this did not seem possible to me. Am I wrong?
Thanks,
Iago
__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.