Hi
Yves Brostaux wrote:
Hello !
I'm struggling again against lattice graprhics. ;) I'm trying to produce a conditionnal xyplot with two conditionning factors (let's say A and B). I want the levels of those factors (A1, A2, etc) to show in the margins of the lattice plot, not in the strips between the panels.
A1 A2 A3
plot11 plot12 plot13 B1
plot21 plot22 plot23 B2
I managed to remove the strips with strip=FALSE, but now I can't find how to write the levels of the factors in the margin in front of their respective lines/columns. It doesn't seems that xlab and ylab arguments could help doing this, as I can't insert multiple xlab's (x variable and A levels, or y variable and B levels) and can't decide which side to use for writing them.
Does anybody have a hint ? Thank you very much !
Here's one approach, using trellis.focus() and grid.text(). This particular example is obviously hand-tuned to the example data set, but it shouldn't be too hard to generalise. I don't think you can do this via a panel function because output is clipped to the current panel for panel functions (Deepayan Sarkar may be able to confirm or deny that).
# "standard" dotplot dotplot(variety ~ yield | year * site, data=barley)
# Customised version
library(grid)
# lattice plot without strips
dotplot(variety ~ yield | year * site, data=barley,
strip=FALSE)
# move to panel (1, 6) and turn clipping off so can draw outside panel
trellis.focus("panel", 1, 6, clip.off=TRUE, highlight=FALSE)
# draw factor label 2 lines above the top of the panel
grid.text("1932", y=unit(1, "npc") + unit(2, "lines"))
# move to next panel, repeat ad nauseam
trellis.focus("panel", 2, 6, clip.off=TRUE, highlight=FALSE)
grid.text("1931", y=unit(1, "npc") + unit(2, "lines"))
grid.text("Waseca", x=unit(1, "npc") + unit(1, "lines"), rot=90)
trellis.focus("panel", 2, 5, clip.off=TRUE, highlight=FALSE)
grid.text("Crookston", x=unit(1, "npc") + unit(1, "lines"), rot=90)
trellis.focus("panel", 2, 4, clip.off=TRUE, highlight=FALSE)
grid.text("Morris", x=unit(1, "npc") + unit(1, "lines"), rot=90)
trellis.focus("panel", 2, 3, clip.off=TRUE, highlight=FALSE)
grid.text("University Farm", x=unit(1, "npc") + unit(1, "lines"), rot=90)
trellis.focus("panel", 2, 2, clip.off=TRUE, highlight=FALSE)
grid.text("Duluth", x=unit(1, "npc") + unit(1, "lines"), rot=90)
trellis.focus("panel", 2, 1, clip.off=TRUE, highlight=FALSE)
grid.text("Grand Rapids", x=unit(1, "npc") + unit(1, "lines"), rot=90)Paul -- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 [EMAIL PROTECTED] http://www.stat.auckland.ac.nz/~paul/
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
