[R] ggplot2 geom_boxplot limits
Jacob Wegelin
jacobwegelin at fastmail.fm
Mon Jul 20 22:19:46 CEST 2015
On 2015-07-20 Mon 15:19, Thierry Onkelinx wrote:
>
> Limits in scales set values outside the limits to NA. Hence the boxplots, smoothers,... change. Use coord_cartesian() to "zoom in".
Thanks. What do I do if I also want to use coord_flip(), that is, if I want the boxes to lie horizontally *and* to zoom in?
myplot+coord_cartesian(ylim=mylimits) # zooms in
myplot+coord_cartesian(ylim=mylimits) + coord_flip() # flips but does not zoom
myplot + coord_flip()+coord_cartesian(ylim=mylimits) # zooms but does not flip
Jacob Wegelin
> Op 20-jul.-2015 20:29 schreef "Jacob Wegelin" <jacobwegelin at fastmail.fm>:
> >
> > With base graphics, one can use the "ylim" argument to zoom in on a boxplot.
> >
> > With ggplot2, using "limits" to try to zoom in on a boxplot *changes the box*. Since the box usually indicates the 25th and 75th percentiles of a
> quantitative variable, this is puzzling.
> >
> > The toy code below demonstrates this. In ggplot2, "zooming in" causes the two boxes to overlap, when they did not overlap in the full plot. Also, the
> center lines --- which usually indicate the median of the variable --- change when one zooms in.
> >
> > In base graphics, "zooming in" does not cause the boxes to overlap or, as far as I can see, the median line to move relative to the scale.
> >
> > What is going on here?
> >
> > pdf(file="toy-example.pdf")
> > set.seed(1)
> > toy1<-data.frame(Y=rnorm(500, mean=3), A="one")
> > toy2<-data.frame(Y=rnorm(500, mean=1.6), A="two")
> > toy<-rbind(toy1,toy2)
> > toy$A<-factor(toy$A)
> > library(ggplot2)
> > mybreaks<-signif(seq(from=min(toy$Y),to=max(toy$Y),by=0.5),digits=2)
> > mylimits<-c(0.61,3.7)
> > print(myplot<-ggplot(toy, aes(x=A,y=Y)) + geom_boxplot()+scale_y_continuous(breaks=mybreaks)+theme_bw())
> > print(myplot+scale_y_continuous(breaks=mybreaks,limits=mylimits))
> > boxplot(toy1$Y,toy2$Y)
> > boxplot(toy1$Y,toy2$Y, ylim=mylimits)
> > graphics.off()
> >
> >> sessionInfo()
> >
> > R version 3.2.1 (2015-06-18)
> > Platform: x86_64-apple-darwin13.4.0 (64-bit)
> > Running under: OS X 10.10.4 (Yosemite)
> >
> > locale:
> > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
> >
> > attached base packages:
> > [1] stats graphics grDevices utils datasets methods base
> >
> > other attached packages:
> > [1] ggplot2_1.0.1
> >
> > loaded via a namespace (and not attached):
> > [1] MASS_7.3-40 colorspace_1.2-6 scales_0.2.5 magrittr_1.5 plyr_1.8.3 tools_3.2.1 gtable_0.1.2 reshape2_1.4.1
> > [9] Rcpp_0.11.6 stringi_0.5-5 grid_3.2.1 stringr_1.0.0 digest_0.6.8 proto_0.3-10 munsell_0.4.2
> >
> >
> > Jacob A. Wegelin
> >
> > ______________________________________________
> > R-help at 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.
>
>
>
More information about the R-help
mailing list