[R] Define pch and color based on two different columns

Matthew Snyder m@nyder424 @end|ng |rom gm@||@com
Wed Apr 10 06:28:15 CEST 2019


I tried this too:

xyplot(mpg ~ wt | cyl, data=mtcars,
       # groups = carb,
       subscripts = TRUE,
       col = as.factor(mtcars$gear),
       pch = as.factor(mtcars$carb)
)

Same problem...


*Matthew R. Snyder*
*~~~~~~~~~~~~~~~~~*
PhD Candidate
University Fellow
University of Toledo
Computational biologist, ecologist, and bioinformatician
Sponsored Guest Researcher at NOAA PMEL, Seattle, WA.
Matthew.Snyder6 using rockets.utoledo.edu
MSnyder424 using 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,
9:28:11 PM

On Tue, Apr 9, 2019 at 8:18 PM Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
wrote:

> Maybe you should use factors rather than character columns.
>
> On April 9, 2019 8:09:43 PM PDT, Matthew Snyder <msnyder424 using gmail.com>
> wrote:
> >Thanks, Jim.
> >
> >I appreciate your contributed answer, but neither of those make the
> >desired
> >plot either. I'm actually kind of shocked this isn't an easier more
> >straightforward thing. It seems like this would be something that a
> >user
> >would want to do frequently. I can actually do this for single plots in
> >ggplot. Maybe I should contact the authors of lattice and see if this
> >is
> >something they can help me with or if they would like to add this as a
> >feature in the future...
> >
> >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.Snyder6 using rockets.utoledo.edu
> >MSnyder424 using 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,
> >7:52:27 PM
> >
> >On Tue, Apr 9, 2019 at 4:53 PM Jim Lemon <drjimlemon using gmail.com> wrote:
> >
> >> Hi Matthew,
> >> How about this?
> >>
> >> library(lattice)
> >> xyplot(mpg ~ wt | cyl,
> >>        data=mtcars,
> >>        col = mtcars$gear,
> >>        pch = mtcars$carb
> >> )
> >> library(plotrix)
> >> grange<-range(mtcars$gear)
> >> xyplot(mpg ~ wt | cyl,
> >>        data=mtcars,
> >>        col =
> >> color.scale(mtcars$gear,extremes=c("blue","red"),xrange=grange),
> >>        pch = as.character(mtcars$carb)
> >> )
> >>
> >> Jim
> >>
> >> On Wed, Apr 10, 2019 at 7:43 AM Matthew Snyder <msnyder424 using 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.Snyder6 using rockets.utoledo.edu
> >> > MSnyder424 using 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 using 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.
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> >______________________________________________
> >R-help using 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.
>
> --
> Sent from my phone. Please excuse my brevity.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list