[R] Very basic question regarding plot.Design...

Frank E Harrell Jr f.harrell at vanderbilt.edu
Wed Sep 9 18:07:17 CEST 2009


Petar Milin wrote:
> Sorry, I hope this will be the last (for now, at least).
> 
> Following your advices, I did:
>  n <- 100
>  anxiety <- c(rnorm(n, 10, 2.5), rnorm(n, 26, 3.2),
>   rnorm(100, 25, 3.1), rnorm(100, 10, 2.6))
>  m.status <- c(rep('married', n*2), rep('not married', n*2))
>  gender  <- c(rep('male', n), rep('female', n),
>   rep('male', n), rep('female',n))
> 
>  im <- as.integer(p2$m.status)
>  m.status <- as.factor(m.status)
>  gender <- as.factor(gender)
> 
>  require(rms)
> 
>  d <- datadist(gender, m.status); options(datadist='d')
> 
>  ols1 <- ols(anxiety ~ m.status)
>  p1 <- Predict(ols1, m.status=.)
>  ols2 <- ols(anxiety ~ m.status * gender)
>  p2 <- Predict(ols2, m.status=., gender=.)
> 
>  pdf('figs/anova.pdf', height=6, width=8)
>  par(mfrow=c(1,2), mar=c(4,4,1,1), cex=1.2)
>  with(p1, plot(1:2, yhat, type='l', xlab='marital status',
>   ylab='anxiety', ylim=c(5,30), lwd=1.2))
>  xyplot(yhat ~ im, groups=gender,
>   type='l', data=p2, ylim=c(5,30), xlab='marital status',
>   ylab='anxiety', scales=list(x=list(at=1:2,
>   labels=levels(p2$m.status))), col=c('black','black'),
>   lwd=1.2, label.curve=list(offset=unit(.3,"in")))
>  par(mfrow=c(1,1))
>  dev.off()
> 
> Graphs are great! However, now, they does not appear in one panel.

Lattice graphics do not respect par(mfrow=).  You have to use multiple 
panels within the graph, or use the lattice print method to compose a 
page with multiple lattice graphs.

Frank

> 
> Sorry, again, for asking so many questions. I am trying to wrap this.
> 
> Best,
> PM
> 


-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list