Paul, I really appreciate all your help.
Here is what I ended up with: http://n2.nabble.com/Can-R-produce-this-plot--td2489288.html#a2494992 This is really close. I might try to figure out a way to add the median to the "boxplot", but this is really close and captures a ton of information on one plot. Thank you again for your help. This is great for a newbie like me to see the outstanding capability. --- On Tue, 3/17/09, Paul Murrell <p.murr...@auckland.ac.nz> wrote: > From: Paul Murrell <p.murr...@auckland.ac.nz> > Subject: Re: [R] R package to automatically produce combination plot? > To: jasonkrup...@yahoo.com > Cc: R-help@r-project.org > Date: Tuesday, March 17, 2009, 3:33 PM > Hi > > > Jason Rupert wrote: > > Paul, > > > > This is great! Like you said it is really close. I > made a few > > changes and for some reason the y-axis label magically > came back. I > > tried to remove it but it wouldn't stay away. > > > You have removed the 'axes=FALSE' from the qqplot() > call. > > Also, you have removed some of the explicit setting of > 'ylim', 'xlim', > and 'breaks', which means that your plots are using > subtly different > coordinate systems. > > > > Also, for some reason the title exceeds the margins of > the layout. I > > am going ot mess around with this a bit more, but any > suggestions for > > fixing this are also greatly appreciated. > > > The title fits (just) for me. If you need more room, bump > up the value > in the par(oma) setting. You could also reduce the > 'line' value in your > mtext() call. > > Paul > > > > Thank you again. > > > > > > y<-rnorm(1000) > > > > yrange <- range(y) > > > > #histdata <- hist(y, breaks=breaks, plot=FALSE) > histdata <- hist(y, > > plot=FALSE) densitydata <- density(y) > > > > par(oma=rep(3, 4), mar=rep(0, 4)) > > > > layout(matrix(1:3, ncol=3), widths=c(.2, .1, 1), > respect=TRUE) > > > > barplot(histdata$density, horiz=TRUE, space=0, > xlim=c(0, > > max(histdata$density)*1.1), axes=FALSE) par(new=TRUE) > > plot(densitydata$y, densitydata$x, xlim=c(0, > > max(histdata$density)*1.1), ylim=yrange, > type="l", ann=FALSE, > > axes=FALSE) axis(2) box() > > > > boxplot(y, ylim=yrange, axes=FALSE) box() > > > > # qqnorm(y, axes=FALSE, ylim=yrange, xlim=yrange, > main="") qqnorm(y, > > , main="") axis(2, labels = FALSE) > #abline(0, 1) qqline(y, col="red", > > lwd=3) box() > > > > kurtosis_val <-(sum((y - mean(y))^4 > ))/(var(y)*var(y))/length(y)-3 > > > > skewness<-function(x) { m_skew=mean(x) > me_skew=median(x) > > s_skew=sqrt(var(x)) sk_skew=(m_skew-me_skew)/s_skew > return(sk_skew) } > > > > > > > > title_text<-paste("Title Text", > "\n Mean = ", format(mean(y), > > digits=4, scientific=F), " Standard Deviation = > ", format(sd(y), > > digits=4, scientific=F), "\n Skewness = > ", format(skewness(y), > > digits=4, scientific=F), "Kurtosis =", > format(kurtosis_val, digits=4, > > scientific=F), sep="") > > > > mtext(title_text, NORTH<-3, line=0, adj=0.5, > cex=1.2, col="red", > > outer=TRUE) > > > > > > > > > > > > > > --- On Tue, 3/17/09, Paul Murrell > <p.murr...@auckland.ac.nz> wrote: > > > >> From: Paul Murrell > <p.murr...@auckland.ac.nz> Subject: Re: [R] R > >> package to automatically produce combination plot? > To: > >> jasonkrup...@yahoo.com Cc: R-help@r-project.org > Date: Tuesday, > >> March 17, 2009, 2:51 PM Hi > >> > >> > >> Jason Rupert wrote: > >>> I guess no reply means there is not an > existing > >> package to produce > >>> the plot? > >>> > >>> I will post the results of my script to > hopefully help > >> others who are > >>> trying to formulate the same plot. > >>> > >>> Thanks again. > >> > >> I don't know of an existing function that does > that particular > >> arrangement of plots, but here's a start ... > >> > >> > >> breaks <- seq(-3.5, 3.5, by=.5) yrange <- > range(breaks) > >> > >> histdata <- hist(y, breaks=breaks, plot=FALSE) > densitydata <- > >> density(y) > >> > >> par(oma=rep(3, 4), mar=rep(0, 4)) > >> > >> layout(matrix(1:3, ncol=3), widths=c(.2, .1, 1), > respect=TRUE) > >> > >> barplot(histdata$density, horiz=TRUE, space=0, > xlim=c(0, > >> max(histdata$density)*1.1), axes=FALSE) > par(new=TRUE) > >> plot(densitydata$y, densitydata$x, xlim=c(0, > >> max(histdata$density)*1.1), ylim=yrange, > type="l", ann=FALSE, > >> axes=FALSE) axis(2) box() boxplot(y, ylim=yrange, > axes=FALSE) box() > >> qqnorm(y, axes=FALSE, ylim=yrange, xlim=yrange, > main="") abline(0, > >> 1) axis(1) box() > >> > >> > >> ... the important bits are the call to layout() to > get the plots at > >> different sizes and the numerous efforts made to > make sure that > >> the coordinate systems of the various plots are > coherent. > >> > >> Paul > >> > >> > >>> --- On Mon, 3/16/09, Jason Rupert > >> <jasonkrup...@yahoo.com> wrote: > >>>> From: Jason Rupert > <jasonkrup...@yahoo.com> > >> Subject: [R] R package > >>>> to automatically produce combination plot? > To: > >> R-help@r-project.org > >>>> Date: Monday, March 16, 2009, 8:14 PM By > any > >> chance is there an R > >>>> package that automatically produces the > plot shown > >> at the following > >>>> link: > >> > http://n2.nabble.com/Can-R-produce-this-plot--td2489288.html > >>>> That is an R package to produce on plot > that has > >> the following: (a) > >>>> a vertically oriented histogram, (b) > associated > >> barplot, and (c) > >>>> quantile-quantile plot (Q-Q Plot). > >>>> > >>>> This is based on a class lecture from > University > >> of Pennsylvania: > >> > stat.wharton.upenn.edu/~mcjon/stat-431/lecture-02.pdf > >>>> I am pretty confident I can put one > together, but > >> just wanted to > >>>> check that there does not already exist an > R > >> package to output such > >>>> a plot. > >>>> > >>>> Thanks again. > >>>> > >>>> > ______________________________________________ > >> R-help@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. > >>> ______________________________________________ > >> R-help@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. > >> > >> -- Dr Paul Murrell Department of Statistics The > University of > >> Auckland Private Bag 92019 Auckland New Zealand 64 > 9 3737599 x85392 > >> p...@stat.auckland.ac.nz > http://www.stat.auckland.ac.nz/~paul/ > > > > > > > > -- > Dr Paul Murrell > Department of Statistics > The University of Auckland > Private Bag 92019 > Auckland > New Zealand > 64 9 3737599 x85392 > p...@stat.auckland.ac.nz > http://www.stat.auckland.ac.nz/~paul/ ______________________________________________ R-help@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.