[R] Legend issue with ggplot2
ONKELINX, Thierry
Thierry.ONKELINX at inbo.be
Mon Sep 3 15:25:51 CEST 2007
Thanks Hadley,
I've been struggling with this all afternoon. But now it's working
again. Since I'm using it in a script, the few extra lines don't bother
me that much.
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 op inbo.be
www.inbo.be
Do not put your faith in what statistics say until you have carefully
considered what they do not say. ~William W. Watt
A statistical analysis, properly conducted, is a delicate dissection of
uncertainties, a surgery of suppositions. ~M.J.Moroney
> -----Oorspronkelijk bericht-----
> Van: hadley wickham [mailto:h.wickham op gmail.com]
> Verzonden: maandag 3 september 2007 15:15
> Aan: ONKELINX, Thierry
> CC: r-help op stat.math.ethz.ch
> Onderwerp: Re: [R] Legend issue with ggplot2
>
> On 9/3/07, ONKELINX, Thierry <Thierry.ONKELINX op inbo.be> wrote:
> > Dear useRs,
> >
> > I'm struggling with the new version of ggplot2. In the previous
> > version I did something like this. But now this yield an
> error (object "fill"
> > not found).
> >
> > library(ggplot2)
> > dummy <- data.frame(x = rep(1:10, 4), group = gl(4, 10)) dummy$y <-
> > dummy$x * rnorm(4)[dummy$group] + 5 * rnorm(4)[dummy$group]
> dummy$min
> > <- dummy$y - 5 dummy$max <- dummy$y + 5 ggplot(data =
> dummy, aes(x =
> > x, max = max, min = min, fill = group)) +
> > geom_ribbon() + geom_line(aes(y = max, colour = fill)) +
> > geom_line(aes(y = min, colour = fill))
>
> Strange - I'm not sure why that ever worked.
>
> > When I adjust the code to the line below, it works again. But this
> > time with two legend keys for "group". Any idea how to display only
> > one legend key for group? The ggplot-code aboved yielded
> only on legend key.
> >
> > ggplot(data = dummy, aes(x = x, max = max, min = min,
> colour = group,
> > fill = group)) + geom_ribbon() + geom_line(aes(y = max)) +
> > geom_line(aes(y = min))
>
> You can manually turn off one of the legends:
>
> sc <- scale_colour_discrete()
> sc$legend <- FALSE
> .last_plot + sc
>
> It's not very convenient though, so I'll think about how to
> do this automatically. The legends need to be more
> intelligent about only displaying the minimum necessary.
>
> Hadley
>
More information about the R-help
mailing list