Christopher W. Ryan
2024-Sep-13 15:58 UTC
[R] how to specify point symbols in the key on a lattice dotplot
dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., pch = 16:17, cex = 1.8, scales = list(cex = 1.4), key = list(points = 16:17) ) produces a graph with no discernible key, but with an asterisk at the top, above the plotting region. Same result from dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., pch = 16:17, cex = 1.8, scales = list(cex = 1.4), key = list(points = 16:17), auto.key = TRUE ) dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., scales = list(cex = 1.4), par.settings = simpleTheme(pch = 16:17, cex = 1.8), auto.key = TRUE) produces the desired result. Why does key = list(points = 16:17) not work? Below is a MWE: =============================== library(lattice) library(dplyr) dd <- structure(list(impact = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), levels = c("impaction", "no impaction"), class = "factor"), segment = structure(c(4L, 2L, 1L, 3L, 4L, 2L, 1L, 3L), levels c("left", "right", "rectosigmoid", "total"), class = c("ordered", "factor" )), transit_time = c(70, 10, 20, 32, 42, 10, 12, 18)), class "data.frame", row.names = c(NA, -8L)) dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., pch = 16:17, cex = 1.8, scales = list(cex = 1.4), key = list(points = 16:17) ) ================================ Thanks. --Chris Ryan -- Agency Statistical Consulting, LLC Helping those in public service get the most from their data. www.agencystatistical.com Public GnuPG email encryption key at https://keys.openpgp.org 9E53101D261BEC070CFF1A0DC8BC50E715A672A0 On Fri, 13 Sep 2024 08:29:20 +0100, CALUM POLWART wrote:>Add: > >key = list(points=16:17) > >Into the dotplot section possibly without the autokey > >On Fri, 13 Sep 2024, 08:19 Christopher W. Ryan, ><cwr at agencystatistical.com> wrote: > >> I am making a dotplot with lattice, as follows: >> >> dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., >> as.table = TRUE, >> pch = 16:17, >> cex = 1.8, >> scales = list(cex = 1.4), >> auto.key = TRUE) >> >> impact is a factor with two levels. >> >> They key shows 2 open circles, one of each color of my two >> plotting symbols, one for each group. I would like the >> symbols in the key to match the plotting characters in the graph: 16 >> (filled circle) for one group and 17 (filled triangle) for the second >> group. How would I do that? I have not had any success with >> supplying arguments to auto.key, simpleKey, or key. Guess I'm not >> understanding the syntax. >> >> Thanks. >> >> --Chris Ryan >> >> -- >> Agency Statistical Consulting, LLC >> Helping those in public service get the most from their data. >> www.agencystatistical.com >> >> Public GnuPG email encryption key at >> https://keys.openpgp.org >> 9E53101D261BEC070CFF1A0DC8BC50E715A672A0 >> >> ______________________________________________ >> 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 >> https://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >>
Bert Gunter
2024-Sep-13 17:45 UTC
[R] how to specify point symbols in the key on a lattice dotplot
"Why does key = list(points = 16:17) not work? " Because, from the "key" section of ?xyplot " The contents of the key are determined by (possibly repeated) components named "rectangles", "lines", "points" or "text". Each of these must be **lists** with relevant graphical parameters (see later) controlling their appearance." Ergo, try: dd |> dotplot( segment ~ transit_time, groups = impact, data = ., pch = 16:17, cex = 1.8, scales = list(cex = 1.4), key = list(points = list(pch =16:17) )) Cheers, Bert On Fri, Sep 13, 2024 at 9:53?AM Christopher W. Ryan <cwr at agencystatistical.com> wrote:> > > dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., > pch = 16:17, > cex = 1.8, > scales = list(cex = 1.4), > key = list(points = 16:17) ) > > produces a graph with no discernible key, but with an asterisk at the > top, above the plotting region. > > Same result from > > dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., > pch = 16:17, > cex = 1.8, > scales = list(cex = 1.4), > key = list(points = 16:17), > auto.key = TRUE ) > > > > > dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., > scales = list(cex = 1.4), > par.settings = simpleTheme(pch = 16:17, cex = 1.8), > auto.key = TRUE) > > produces the desired result. > > Why does key = list(points = 16:17) not work? Below is a MWE: > > ===============================> > library(lattice) > library(dplyr) > dd <- structure(list(impact = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, > 2L), levels = c("impaction", "no impaction"), class = "factor"), > segment = structure(c(4L, 2L, 1L, 3L, 4L, 2L, 1L, 3L), levels > c("left", "right", "rectosigmoid", "total"), class = c("ordered", > "factor" )), transit_time = c(70, 10, 20, 32, 42, 10, 12, 18)), class > "data.frame", row.names = c(NA, -8L)) > > dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., > pch = 16:17, > cex = 1.8, > scales = list(cex = 1.4), > key = list(points = 16:17) ) > > ================================> > > Thanks. > > --Chris Ryan > -- > Agency Statistical Consulting, LLC > Helping those in public service get the most from their data. > www.agencystatistical.com > > Public GnuPG email encryption key at > https://keys.openpgp.org > 9E53101D261BEC070CFF1A0DC8BC50E715A672A0 > > > On Fri, 13 Sep 2024 08:29:20 +0100, CALUM POLWART wrote: > > >Add: > > > >key = list(points=16:17) > > > >Into the dotplot section possibly without the autokey > > > >On Fri, 13 Sep 2024, 08:19 Christopher W. Ryan, > ><cwr at agencystatistical.com> wrote: > > > >> I am making a dotplot with lattice, as follows: > >> > >> dd %>% dotplot( segment ~ transit_time, groups = impact, data = ., > >> as.table = TRUE, > >> pch = 16:17, > >> cex = 1.8, > >> scales = list(cex = 1.4), > >> auto.key = TRUE) > >> > >> impact is a factor with two levels. > >> > >> They key shows 2 open circles, one of each color of my two > >> plotting symbols, one for each group. I would like the > >> symbols in the key to match the plotting characters in the graph: 16 > >> (filled circle) for one group and 17 (filled triangle) for the second > >> group. How would I do that? I have not had any success with > >> supplying arguments to auto.key, simpleKey, or key. Guess I'm not > >> understanding the syntax. > >> > >> Thanks. > >> > >> --Chris Ryan > >> > >> -- > >> Agency Statistical Consulting, LLC > >> Helping those in public service get the most from their data. > >> www.agencystatistical.com > >> > >> Public GnuPG email encryption key at > >> https://keys.openpgp.org > >> 9E53101D261BEC070CFF1A0DC8BC50E715A672A0 > >> > >> ______________________________________________ > >> 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 > >> https://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > >> > > ______________________________________________ > 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 https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.