Hi, I'm struggling to find if there is a simple way to make the lines and points overlap in a legend for a lattice plot using auto.key. ?Here is a toy example of what doesn't work (for me) as the lines and points are adjacent rather than overlapping: library(lattice) d <- data.frame(x = 1:2, y = 1:4, f = factor(letters[1:2])) xyplot(y ~ x, d, groups = f, type = "b",? pch = 21:22, fill = c("white", "black"), col = "black", par.settings = list(superpose.symbol =? list(pch = 21:22, fill = c("white", "black"), col = "black"), superpose.line = list(col = "black")), auto.key = list(space = "right", points = TRUE, lines = TRUE)) I've seen a few examples on stack.overflow but I haven't been able to make them work, or they seem more complicated then I would think it should be (but I don't exclude that I'm fooling myself there). R version 4.2.2 Patched (2023-01-04 r83564) Platform: x86_64-apple-darwin17.0 (64-bit) Running under: macOS Catalina 10.15.7 Matrix products: default BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] lattice_0.20-45 loaded via a namespace (and not attached): [1] compiler_4.2.2 grid_4.2.2 Thanks for any enlightenment, in advance. Ken ___ Kenneth Knoblauch Inserm U1208 Stem-cell and Brain Research Institute 18 avenue du Doyen L?pine 69500 Bron France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: +33 (0)6 84 10 64 10 https://sbri.fr/public-profile/63/single-member/
Hi Kenneth, replacing the auto.key argument with key = list(space = "right", lines = list(type="b", pch=21:22, fill = c("white", "black")), text = list(c("a","b"))) works, but is definitely not simpler. Given that your choice of points is so distinctive, why not just use the points in the legend? Regards, Martin> On 28. Jan 2023, at 10:18, Kenneth Knoblauch <ken.knoblauch at inserm.fr> wrote: > > Hi, > > I'm struggling to find if there is a simple way to make the lines and points overlap in a legend for a lattice plot using auto.key. Here is a toy example of what doesn't work (for me) as the lines and points are adjacent rather than overlapping: > > library(lattice) > d <- data.frame(x = 1:2, y = 1:4, f = factor(letters[1:2])) > > xyplot(y ~ x, d, groups = f, type = "b", > pch = 21:22, fill = c("white", "black"), col = "black", > par.settings = list(superpose.symbol = > list(pch = 21:22, fill = c("white", "black"), col = "black"), > superpose.line = list(col = "black")), > auto.key = list(space = "right", points = TRUE, lines = TRUE)) > > I've seen a few examples on stack.overflow but I haven't been able to make them work, or they seem more complicated then I would think it should be (but I don't exclude that I'm fooling myself there). > > R version 4.2.2 Patched (2023-01-04 r83564) > Platform: x86_64-apple-darwin17.0 (64-bit) > Running under: macOS Catalina 10.15.7 > > Matrix products: default > BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib > LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] lattice_0.20-45 > > loaded via a namespace (and not attached): > [1] compiler_4.2.2 grid_4.2.2 > > Thanks for any enlightenment, in advance. > > Ken > > ___ > Kenneth Knoblauch > Inserm U1208 > Stem-cell and Brain Research Institute > 18 avenue du Doyen L?pine > 69500 Bron > France > tel: +33 (0)4 72 91 34 77 > fax: +33 (0)4 72 91 34 61 > portable: +33 (0)6 84 10 64 10 > https://sbri.fr/public-profile/63/single-member/ > > ______________________________________________ > R-help at 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.
On Sat, Jan 28, 2023 at 2:49 PM Kenneth Knoblauch <ken.knoblauch at inserm.fr> wrote:> > Hi, > > I'm struggling to find if there is a simple way to make the lines and points overlap in a legend for a lattice plot using auto.key. Here is a toy example of what doesn't work (for me) as the lines and points are adjacent rather than overlapping: > > library(lattice) > d <- data.frame(x = 1:2, y = 1:4, f = factor(letters[1:2])) > > xyplot(y ~ x, d, groups = f, type = "b", > pch = 21:22, fill = c("white", "black"), col = "black", > par.settings = list(superpose.symbol > list(pch = 21:22, fill = c("white", "black"), col = "black"), > superpose.line = list(col = "black")), > auto.key = list(space = "right", points = TRUE, lines = TRUE))Just adding a type = "b" should work (for the lines), so something like: auto.key = list(space = "right", type = "b", points = FALSE, lines = TRUE) BTW, once you specify par.settings, you don't need to specify the parameters again, so you can drop the second line. Best, -Deepayan> > > I've seen a few examples on stack.overflow but I haven't been able to make them work, or they seem more complicated then I would think it should be (but I don't exclude that I'm fooling myself there). > > R version 4.2.2 Patched (2023-01-04 r83564) > Platform: x86_64-apple-darwin17.0 (64-bit) > Running under: macOS Catalina 10.15.7 > > Matrix products: default > BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib > LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib > > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] lattice_0.20-45 > > loaded via a namespace (and not attached): > [1] compiler_4.2.2 grid_4.2.2 > > Thanks for any enlightenment, in advance. > > Ken > > ___ > Kenneth Knoblauch > Inserm U1208 > Stem-cell and Brain Research Institute > 18 avenue du Doyen L?pine > 69500 Bron > France > tel: +33 (0)4 72 91 34 77 > fax: +33 (0)4 72 91 34 61 > portable: +33 (0)6 84 10 64 10 > https://sbri.fr/public-profile/63/single-member/ > > ______________________________________________ > R-help at 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.