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

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Wed Apr 10 06:23:22 CEST 2019


1. I am quite sure that whatever it is that you want to do can be done.
Probably straightforwardly. The various R graphics systems are mature and
extensive.

2. But I, for one, do not understand from your post what it is that you
want to do.  Nor does anyone else apparently.

Cheers,

Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Tue, Apr 9, 2019 at 8:10 PM 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list