[R] ggplot, ribbon not showing up properly

Sock Cheng sockcheng at hailmail.net
Thu Sep 17 18:31:39 CEST 2009


Hi Thierry,

I tried the code suggested below, but it didn't work fully.  The ribbon
showed up correctly for first and last days, but the days in between
appeared to be ignored.  I tried other ways of feeding geom_ribbon the
summary stats but my ways didn't work either.  

Thanks for trying to help,  

Sock

On Tue, 15 Sep 2009 11:17 +0200, "ONKELINX, Thierry"
<Thierry.ONKELINX at inbo.be> wrote:
> Dear Sock,
> 
> I'm wondering if that mean_sdl function is return what you are
> expecting. I would calculate the statistics outside ggplot.
> 
> RibbonData <- ddply(dat.less, "Day", function(x){
> 	mean(x$Y) + c(ymin = -1, ymax = 1) * sd(x$Y)
> })
> p + stat_summary(data=dat.less, aes(group=1), geom="crossbar",
> fun.data="mean_sdl", mult=1) + geom_ribbon(data = RibbonData, aes(group
> = 1, ymin = ymin, ymax = ymax), fill=alpha("blue", 1/10))
> 
> 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 Sock Cheng
> Verzonden: maandag 14 september 2009 20:58
> Aan: r-help at r-project.org
> Onderwerp: [R] ggplot, ribbon not showing up properly
> 
> Hi,
> 
> I'm trying to plot a longitudinal data set, using ggplot and adding some
> summary info (eg. mean, 1 sd bounds) using geom=ribbon.  The summary
> info is based on a subset of the original data (eg. less an outlier). 
> But I'm having trouble getting the ribbons to show up correctly.  It's
> probably something obvious that I'm missing as a novice at ggplot2, and
> any help is much appreciated!
>  
> Here's a simple example.  I tried several things.  
> - if I use geom=crossbar, everything is ok
> - if Day is set as rep(c(1,2,3,8,9), each=8), then everything is ok,
> which makes me wonder if the problem has to do with the ordering of Day?
>  Day is supposed to be numeric.  
> 
> Thanks!
> Sock
> 
> ### Example data.  Ran using R version 2.9.2, ggplot2 version 0.8.3 ###
> 
> set.seed(13)
> 
> Day <- rep(c(1, 2, 3, 8, 20), each=8)      
> # The plot is ok if Day <- rep(c(1,2,3,8,9), each=8) 
> 
> ID <- rep(LETTERS[1:8], 5)
> Y <- rnorm(length(Day), 100, 5)
> dat <- data.frame(Day=Day, ID=ID, Y=Y)
> 
>  # outlier
> dat$Y[dat$ID=="A" & dat$Day==8] <- 150         
> dat.less <- dat[!(dat$ID=="A" & dat$Day==8),]   
> 
> # Longitudinal data plot.  Obs for each subject is connected by a line
> over time
> 
> p <- ggplot(dat, aes(x=Day, y=Y, group=ID)) +
> scale_x_continuous(breaks=sort(unique(dat$Day))) +
> geom_line(colour=alpha("blue", 5/10))
> 
> # Adding mean, 1 sd bounds using crossbar geom is ok.  But the same info
> using ribbon geom doesn't work. 
>  
> p + stat_summary(data=dat.less, aes(group=1), geom="crossbar",
> fun.data="mean_sdl", mult=1) + stat_summary(data=dat.less, aes(group=1),
> geom="ribbon", fun.data="mean_sdl", mult=1, fill=alpha("blue", 1/10))
> 
> ______________________________________________
> 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.
> 
> Druk dit bericht a.u.b. niet onnodig af.
> Please do not print this message unnecessarily.
> 
> Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver
> weer 
> en binden het INBO onder geen enkel beding, zolang dit bericht niet
> bevestigd is
> door een geldig ondertekend document. The views expressed in  this
> message 
> and any annex are purely those of the writer and may not be regarded as
> stating 
> an official position of INBO, as long as the message is not confirmed by
> a duly 
> signed document.




More information about the R-help mailing list