[R] Legend issue with ggplot2

hadley wickham h.wickham at gmail.com
Mon Sep 3 15:28:05 CEST 2007


Yes - all this stuff is currently rather undocumented.  Hopefully that
will change in the near future!

Hadley

On 9/3/07, ONKELINX, Thierry <Thierry.ONKELINX at inbo.be> wrote:
> 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 at 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 at gmail.com]
> > Verzonden: maandag 3 september 2007 15:15
> > Aan: ONKELINX, Thierry
> > CC: r-help at stat.math.ethz.ch
> > Onderwerp: Re: [R] Legend issue with ggplot2
> >
> > On 9/3/07, ONKELINX, Thierry <Thierry.ONKELINX at 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
> >
>


-- 
http://had.co.nz/



More information about the R-help mailing list