An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/7181336b/attachment.pl>
Overlay boxplot and scatter.smooth line
5 messages · Adams, Jean, Johannes Radinger, David Winsemius +1 more
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/719c6e8c/attachment.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/a8c23d3e/attachment.pl>
On Nov 19, 2013, at 2:43 AM, Johannes Radinger wrote:
Hi, I'd like to plot a boxplot and use a scatter.smooth line plot as an overlay for this plot. This works except for the problem that the x-axis ticks for both plots are differently spaced: The boxplot ticks are closer and the space between the outer most boxplots and the plot region (box) is larger for boxplots than for the scatter.smooth plot. Is there any plot-option that can be changed to produce the desired plot. Here an example to illustrate what problem I am facing: x <- c(rep(1,100),rep(2,100),rep(3,100)) y <- c(rnorm(100,1),rnorm(100,2),rnorm(100,3)) boxplot(y~x) par(new=TRUE) scatter.smooth(x, y, xaxt="n", yaxt="n", ann=FALSE) Moreover, I'd like to plot just the smoothed line only and not the datapoints.
?boxplot # .... sends you to ?boxplot.stats which should be used to determine what user coordinates are being used when plotting the boxplot. xlim would be suitable for getting both plots on hte same x-scale.
David Winsemius Alameda, CA, USA
Same thing using ggplot... # your data x <- c(rep(1,100),rep(2,100),rep(3,100)) y <- c(rnorm(100,1),rnorm(100,2),rnorm(100,3)) df <- data.frame(x=x, y=y) library(ggplot2) ggp <- ggplot(df) + labs(x="X", y="Y") ggp <- ggp + geom_boxplot(aes(x=factor(x), y=y)) ggp <- ggp + geom_smooth(formula=y~x, aes(x=x, y=y), method="loess", se=F) ggp Setting method="lm" above would plot linear model instead of loess, setting se=T (the default) would plot 95% CL for the model. Adding the line: ggp <- ggp + stat_summary(fun.data="mean_cl_normal", aes(x=factor(x),y=y), size=1.2, color="red") ggp will overlay mean and 95% CL (assuming normal distribution of error) at each level of x. -----Original Message----- From: Johannes Radinger [mailto:johannesradinger at gmail.com] Sent: Tuesday, November 19, 2013 10:01 AM To: Adams, Jean Cc: R help Subject: Re: [R] Overlay boxplot and scatter.smooth line Thanks...that works great! /J
On Tue, Nov 19, 2013 at 2:39 PM, Adams, Jean <jvadams at usgs.gov> wrote:
Use lines() with loess.smooth() instead of scatter.smooth() to add to the already existing boxplot. For example, boxplot(y~x) lines(loess.smooth(x, y)) Jean On Tue, Nov 19, 2013 at 4:43 AM, Johannes Radinger < johannesradinger at gmail.com> wrote:
Hi,
I'd like to plot a boxplot and use a scatter.smooth line plot as an
overlay for this plot.
This works except for the problem that the x-axis ticks for both
plots are differently spaced:
The boxplot ticks are closer and the space between the outer most
boxplots and the plot region (box) is larger for boxplots than for
the scatter.smooth plot. Is there any plot-option that can be changed
to produce the desired plot.
Here an example to illustrate what problem I am facing:
x <- c(rep(1,100),rep(2,100),rep(3,100))
y <- c(rnorm(100,1),rnorm(100,2),rnorm(100,3))
boxplot(y~x)
par(new=TRUE)
scatter.smooth(x, y, xaxt="n", yaxt="n", ann=FALSE)
Moreover, I'd like to plot just the smoothed line only and not the
datapoints.
Any suggestions?
best regards,
J.
[[alternative HTML version deleted]]
______________________________________________ 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.