I think the intended appearance is closer to this xyplot(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, iris, type = c("p", "r"), jitter.x = TRUE, jitter.y = TRUE, factor = 5, key = list(between=c(-4.5), column=4, text=list(lab=paste0(" ", letters[1:4], " ")), lines=list(col=1:4, pch=1:4, type='b'), rectangles=list(col=1:4, alpha=0.25, border=FALSE) ) )
I have the partial overlap of the rectangles and the line-point objects. They don't align correctly. I think even more complex grid usage is needed than Duncan provided. Rich On Thu, Dec 29, 2016 at 12:16 AM, Duncan Mackay <dulca...@bigpond.com> wrote: > Hi > > Is this something like what you are looking for? > I have put it on the right and heights etc are just a quick guess. (all i > have time for) > It may be a little too complicated for what you want but I thought of this > first based on your description rather than the plot. > > library(grid) > library(lattice) > > # legend > XY04.glay <- > grid.layout(nrow = 8, > ncol = 2, > heights = unit(rep(1, 2), rep("cm", 2)), > widths = unit(c(0.4, 0.8), > c("in","in")), > just = "centre") > > XY04.fmG <- frameGrob(layout = XY04.glay) > > k <-0 > for (j in seq(1,8,2)){ > k = k+1 > > XY04.fmG <- > placeGrob(XY04.fmG, textGrob(lab = letters[1:4][k], > just = 0, > gp = gpar(cex = 0.8)), row = j, col = 1) > XY04.fmG <- > placeGrob(XY04.fmG, linesGrob(c(0.2,0.8), c(0.5, 0.5), > gp = gpar(col = c(1:4)[k])), row = j, col = 2) > XY04.fmG <- > placeGrob(XY04.fmG, pointsGrob(c(0.2,0.8), c(0.5, 0.5), > pch = j, > gp = gpar(cex = 0.7, col = c(1:4)[k])), row = > j, col = 2) > } > k = 0 > for (j in seq(2,8,2)){ > k = k+1 > XY04.fmG <- > placeGrob(XY04.fmG, rectGrob(width = 0.6, > gp = gpar(col=k, > alpha = 0.25, > fill = k)), row = j, col = 2) > > } > > xyplot(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, > iris, > type = c("p", "r"), > jitter.x = TRUE, > jitter.y = TRUE, > factor = 5, > legend = list(right = list(fun = XY04.fmG)) > ) > > > Have a look at https://stat.ethz.ch/pipermail/r-help/2005-April/069459.html > and the following emails on the thread. > > Regards > > Duncan > > Duncan Mackay > Department of Agronomy and Soil Science > University of New England > Armidale NSW 2351 > Email: home: mac...@northnet.com.au > > -----Original Message----- > From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of sbihorel > Sent: Thursday, 29 December 2016 13:51 > To: r-help@r-project.org > Subject: [R] How to overlay lines and rectangles in lattice plot key > > Hi, > > I would like to create a custom key for a lattice xyplot in which line > elements are displayed on top of rectangle elements. In the example code > below, the lines and rectangles are shown side by side (the legend > itself is meaningless, but that is not the point). Is there a way to > overlay these key elements (but not the text)? > > Thanks > > xyplot(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, > iris, > type = c("p", "r"), > jitter.x = TRUE, > jitter.y = TRUE, > factor = 5, > key = list( > column=4, > text=list(lab=letters[1:4]), > lines=list(col=1:4, pch=1:4, type='b'), > rectangles=list(col=1:4, alpha=0.25, border=FALSE) > ) > ) > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.