[R] Combining several mappings in ggplot2
Tribo Laboy
tribolaboy at gmail.com
Fri Apr 4 09:11:33 CEST 2008
Hi Thiery,
Thanks for the corrected line. I did manage to plot it now, but
instead of one unified legend now I have two separate legends - one
for the 5 colors, Marked with "Tree" on the top and another for the 4
linetypes, marked with "Lines" at the top. any idea how to unify them?
Regards,
TL
On Thu, Mar 27, 2008 at 6:18 PM, ONKELINX, Thierry
<Thierry.ONKELINX at inbo.be> wrote:
> Dear Tribo,
>
> I've made a little mistake. It should have been
>
>
> Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> circumference = circumference_v)
> Orange2$Lines <- factor(as.numeric(Orange2$Tree) %% 4)
>
> Have a look at help("%%")
>
>
> HTH,
>
> Thierry
>
>
> ------------------------------------------------------------------------
> ----
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
> and Forest
> Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
> methodology and quality assurance
> Gaverstraat 4
> 9500 Geraardsbergen
> Belgium
> tel. + 32 54/436 185
> Thierry.Onkelinx at inbo.be
> www.inbo.be
>
> To call in the statistician after the experiment is done may be no more
> than asking him to perform a post-mortem examination: he may be able to
> say what the experiment died of.
> ~ Sir Ronald Aylmer Fisher
>
> The plural of anecdote is not data.
> ~ Roger Brinner
>
> The combination of some data and an aching desire for an answer does not
> ensure that a reasonable answer can be extracted from a given body of
> data.
> ~ John Tukey
>
> -----Oorspronkelijk bericht-----
> Van: Tribo Laboy [mailto:tribolaboy at gmail.com]
> Verzonden: woensdag 26 maart 2008 17:42
> Aan: ONKELINX, Thierry
> CC: hadley wickham; r-help at r-project.org
>
>
> Onderwerp: Re: [R] Combining several mappings in ggplot2
>
> Hi Thierry
>
> Thanks for replying. I tried your code, but it spit an error on me:
>
> > Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> + circumference = circumference_v, Lines =
> factor(as.numeric(Orange2$Tree) + %% 4))
> Error: unexpected SPECIAL in:
> "Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> circumference = circumference_v, Lines = factor(as.numeric(Orange2$Tree)
> + %%"
>
> Am I typing it correctly? What does the %% 4 or %%5 mean by the way?
>
> Regards,
>
> TL
>
>
> On Wed, Mar 26, 2008 at 11:26 AM, ONKELINX, Thierry
> <Thierry.ONKELINX at inbo.be> wrote:
> > Tribo,
> >
> > It looks like geom_line() accepts only 4 linetypes and you asked for
> 5.
> >
> > library(ggplot2)
> >
> > Tree_v <- rep(c(1:5),each = 5)
> > age_v <- rep(seq(1,25, by = 5),5) + 10*runif(25)
> > circumference_v <- rep(seq(21,45, by = 5), 5)*Tree_v + 25*runif(25)
> >
> > #This will work
> >
> > Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> > circumference = circumference_v, Lines =
> factor(as.numeric(Orange2$Tree)
> > %% 4))
> > ggplot(data = Orange2, aes(x = age, y = circumference, color = Tree,
> > linetype = Lines)) + geom_line()
> >
> > #This won't
> >
> > Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> > circumference = circumference_v, Lines =
> factor(as.numeric(Orange2$Tree)
> > %% 5))
> >
> > ggplot(data = Orange2, aes(x = age, y = circumference, color = Tree,
> > linetype = Lines)) + geom_line()
> >
> > HTH,
> >
> > Thierry
> >
> >
> ------------------------------------------------------------------------
> > ----
> > ir. Thierry Onkelinx
> > Instituut voor natuur- en bosonderzoek / Research Institute for
> Nature
> > and Forest
> > Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
> > methodology and quality assurance
> > Gaverstraat 4
> > 9500 Geraardsbergen
> > Belgium
> > tel. + 32 54/436 185
> > Thierry.Onkelinx at inbo.be
> > www.inbo.be
> >
> > To call in the statistician after the experiment is done may be no
> more
> > than asking him to perform a post-mortem examination: he may be able
> to
> > say what the experiment died of.
> > ~ Sir Ronald Aylmer Fisher
> >
> > The plural of anecdote is not data.
> > ~ Roger Brinner
> >
> > The combination of some data and an aching desire for an answer does
> not
> > ensure that a reasonable answer can be extracted from a given body of
> > data.
> > ~ John Tukey
> >
> > -----Oorspronkelijk bericht-----
> > Van: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org]
> > Namens Tribo Laboy
> > Verzonden: woensdag 26 maart 2008 12:01
> > Aan: hadley wickham
> > CC: r-help at r-project.org
> > Onderwerp: Re: [R] Combining several mappings in ggplot2
> >
> >
> >
> > Apologies! I though that the Orange dataset comes with R, but it is
> in
> > fact in the package "datasets".
> >
> > So here's another "Orange2" dataset for the example:
> >
> > Tree_v = rep(c(1:5),each = 5)
> > age_v = rep(seq(1,25, by = 5),5) + 10*runif(25)
> > circumference_v <- rep(seq(21,45, by = 5), 5)*Tree_v + 25*runif(25)
> > Orange2 <- data.frame(Tree = as.factor(Tree_v), age = age_v,
> > circumference = circumference_v)
> >
> >
> > This works fine:
> >
> > ggplot(data = Orange2, aes(x = age, y = circumference, color = Tree))
> > + geom_line()
> >
> > These generate errors (included):
> >
> > > ggplot(data = Orange2, aes(x = age, y = circumference, color =
> Tree,
> > linetype = Tree)) + geom_line()
> > Error in get("check_domain", env = ., inherits = TRUE)(., ...) :
> > Too many values in domain (5 > 4)
> >
> >
> > > ggplot(data = Orange2, aes(x = age, y = circumference, color =
> Tree))
> > + geom_line() + scale_linetype_manual(value = c(1:5))
> > Error in unit(values, units, data = data) :
> > 'x' and 'units' must have length > 0
> >
> >
> > What am I doing wrong?
> >
> >
> > Regards,
> >
> > TL
> >
> >
> >
> > On Wed, Mar 26, 2008 at 2:08 AM, hadley wickham <h.wickham at gmail.com>
> > wrote:
> > > On Tue, Mar 25, 2008 at 11:48 AM, Tribo Laboy
> <tribolaboy at gmail.com>
> > wrote:
> > > > Hello,
> > > >
> > > > I want to be able to make a plot that has several series with
> > > > different color and linetype.
> > > > Online documentation suggest that this is possible, but I
> haven't
> > found how:
> > > >
> > > > "We can also create redundant mappings, mapping the same
> variable
> > to
> > > > multiple aesthetics. This is most useful when producing a
> graphic
> > for
> > > > both colour and black and white display."
> > > >
> > > > Here's what I have to get the color
> > > > ggplot(data = Orange, aes(x = age, y = circumference, color =
> > Tree)) +
> > > > geom_line()
> > > >
> > > > if i try this I get an error:
> > > > ggplot(data = Orange, aes(x = age, y = circumference, color =
> > Tree,
> > > > linetype = Tree)) + geom_line()
> > >
> > > Please provide a reproducible example (or at least describe the
> > > error!), otherwise we have no way to help you.
> > >
> > > Hadley
> > >
> > >
> > > --
> > > http://had.co.nz/
> > >
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > 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.
> >
>
More information about the R-help
mailing list