conditions look better as factors (their values are displayed in the strip label). groups should be a factor to get the uniqueness over panels. To use two factors together for groups, take their interaction. col and pch should be integers
xyplot(mpg ~ wt | factor(cyl), data=mtcars, groups = factor(carb), col = mtcars$gear, pch = mtcars$carb ) xyplot(mpg ~ wt | factor(cyl), data=mtcars, groups = interaction(factor(carb), factor(gear)), col = mtcars$gear, pch = mtcars$carb ) On Wed, Apr 10, 2019 at 12:54 AM Peter Langfelder <peter.langfel...@gmail.com> wrote: > > Sorry for being late to the party, but has anyone suggested a minor > but important modification of the code from stack exchange? > > xyplot(mpg ~ wt | cyl, > panel = function(x, y, ..., groups, subscripts) { > pch <- mypch[factor(carb)[subscripts]] > col <- mycol[factor(gear)[subscripts]] > grp <- c(gear,carb) > panel.xyplot(x, y, pch = pch, col = col) > } > ) > > From the little I understand about what you're trying to do, this may > just do the trick. > > Peter > > On Tue, Apr 9, 2019 at 2:43 PM Matthew Snyder <msnyder...@gmail.com> wrote: > > > > I am making a lattice plot and I would like to use the value in one column > > to define the pch and another column to define color of points. Something > > like: > > > > xyplot(mpg ~ wt | cyl, > > data=mtcars, > > col = gear, > > pch = carb > > ) > > > > There are unique pch points in the second and third panels, but these > > points are only unique within the plots, not among all the plots (as they > > should be). You can see this if you use the following code: > > > > xyplot(mpg ~ wt | cyl, > > data=mtcars, > > groups = carb > > ) > > > > This plot looks great for one group, but if you try to invoke two groups > > using c(gear, carb) I think it simply takes unique combinations of those > > two variables and plots them as unique colors. > > > > Another solution given by a StackExchange user: > > > > mypch <- 1:6 > > mycol <- 1:3 > > > > xyplot(mpg ~ wt | cyl, > > panel = function(x, y, ..., groups, subscripts) { > > pch <- mypch[factor(carb[subscripts])] > > col <- mycol[factor(gear[subscripts])] > > grp <- c(gear,carb) > > panel.xyplot(x, y, pch = pch, col = col) > > } > > ) > > > > This solution has the same problems as the code at the top. I think the > > issue causing problems with both solutions is that not every value for each > > group is present in each panel, and they are almost never in the same > > order. I think R is just interpreting the appearance of unique values as a > > signal to change to the next pch or color. My actual data file is very > > large, and it's not possible to sort my way out of this mess. It would be > > best if I could just use the value in two columns to actually define a > > color or pch for each point on an entire plot. Is there a way to do this? > > > > Ps, I had to post this via email because the Nabble site kept sending me an > > error message: "Message rejected by filter rule match" > > > > Thanks, > > Matt > > > > > > > > *Matthew R. Snyder* > > *~~~~~~~~~~~~~~~~~* > > PhD Candidate > > University Fellow > > University of Toledo > > Computational biologist, ecologist, and bioinformatician > > Sponsored Guest Researcher at NOAA PMEL, Seattle, WA. > > matthew.snyd...@rockets.utoledo.edu > > msnyder...@gmail.com > > > > > > > > [image: Mailtrack] > > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> > > Sender > > notified by > > Mailtrack > > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> > > 04/09/19, > > 1:49:27 PM > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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.