[R] [newbie] scatterplot with marginal histograms (done) and axes labels

KarstenW K.Weinert at gmx.net
Fri Nov 7 16:04:28 CET 2008


Hello,
sometimes it helps if I formulate my problem. I tried the following after I
posted my previous post.

scatterhist=function(x,y, xlab="", ylab=""){
 #oldpar = par(no.readonly = TRUE) # save default, for resetting...
 zones=matrix(c(2,0,1,3),ncol=2,byrow=TRUE)
 layout(zones,widths=c(4/5,1/5),heights=c(1/5,4/5))
 xhist <- hist(x, plot=FALSE)
 yhist <- hist(y, plot=FALSE)
 top <- max(c(xhist$counts, yhist$counts))
 par(mar=c(3,3,1,1))
 plot(x,y)
 par(mar=c(0,3,1,1))
 barplot(xhist$counts, axes=FALSE, ylim=c(0, top), space=0)
 par(mar=c(3,0,1,1))
 barplot(yhist$counts, axes=FALSE, xlim=c(0, top), space=0, horiz=TRUE)
 par(oma=c(3,3,0,0))
 mtext(xlab, side=1, line=1, outer=TRUE, adj=0)
 mtext(ylab, side=2, line=1, outer=TRUE, adj=0)
 #par(oldpar) # reset to default
}

This works quite nice in the R Gui (the labels appear, but it is not easy
for me to center them). However, when I use the function in a Sweave
context, i.e.

\begin{Scode}{fig=true, echo=false, results=hide}
print(scatterhist(x,y, "x", "y"))
\end{Scode}

the labels still do not appear...

Kind regards,
Karsten.


KarstenW wrote:
> 
> Hello,
> 
> I am stuck when I want to add axes labels to my scatterplot with
> histograms. I guess it must be something  with par(mar=) or so, but could
> someone give me a hint?
> 
> Here is what I got so far:
> 
> # adapted from
> http://www.stat.ucl.ac.be/ISdidactique/comment/fichiers/r/scatterhist.rs
> and from ?layout
> #
> # see also: 
> #     - http://biom1.univ-lyon1.fr/ADE-4/ade4-html/s.hist.html (a function
> called s.hist in package ade4)
> #     - http://www.statmethods.net/graphs/scatterplot.html (shows how to
> do some nice scatterplots, 
> #       e.g. with the function scatterplot in package car)
> 
> scatterhist=function(x,y, xlab="", ylab=""){
>  #oldpar = par(no.readonly = TRUE) # save default, for resetting...
>  zones=matrix(c(2,0,1,3),ncol=2,byrow=TRUE)
>  layout(zones,widths=c(4/5,1/5),heights=c(1/5,4/5))
>  xhist <- hist(x, plot=FALSE)
>  yhist <- hist(y, plot=FALSE)
>  top <- max(c(xhist$counts, yhist$counts))
>  par(mar=c(3,3,1,1))
>  plot(x,y, xlab=xlab, ylab=ylab)
>  par(mar=c(0,3,1,1))
>  barplot(xhist$counts, axes=FALSE, ylim=c(0, top), space=0)
>  par(mar=c(3,0,1,1))
>  barplot(yhist$counts, axes=FALSE, xlim=c(0, top), space=0, horiz=TRUE)
>  #par(oldpar) # reset to default
> }
> 
> Now if I do
>> x=rnorm(50)
>> y=rnorm(50)
>> scatterhist(x,y,xlab="x", ylab="y")
> 
> there are no axes labels.....
> I also wonder why R complains if I uncomment the first and last line in
> the function ("invalid value
> for parameter fig specified").
> 
> Any hint appreciated,
> Karsten.
> 

-- 
View this message in context: http://www.nabble.com/-newbie--scatterplot-with-marginal-histograms-%28done%29-and-axes-labels-tp20381450p20382242.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list