From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Tue 11 Oct 2005 - 17:43:01 EST

}

}

upViewport()

}

}

)

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Oct 11 18:03:23 2005

Date: Tue 11 Oct 2005 - 17:43:01 EST

The code below displays three graphs in three rows and one column but:

- I want to remove the space between the graphs (I tried playing with position= arg to print.trellis but it seems quite difficult to get the right values and all my attempts had space between them or had overlapping graphs. Is there a better way to do this?
- the widths of the plots are not the same even though I specified the same xlim= to them all. How do I make them the same?
- how do I get rid of the ticks at the top of the bottom plot?
- the bottom graph is supposed to plot 1:3 against itself but the third point is not showing even though I specified ylim = c(0,3). Must I specify ylim = c(0,3+1) or is there a better way?

Here is the code (its a modified version of some code that I previously posted regarding a different question):

*### everything from here to the grid.newpage line is just
**### to set up the viewports for the graphs so you
*

### can just go to the comment that says

### 'relevant part starts here'

library(grid)

library(lattice)

trellis.par.set(theme = col.whitebg())

grid.newpage()

pushLayout <- function(nr, nc, ..., name="layout") {
pushViewport(viewport(layout=grid.layout(nr, nc, ...), name=name))
for (i in 1:nr) {

for (j in 1:nc) {

pushViewport(viewport(layout.pos.row=i, layout.pos.col=j)) upViewport()

}

}

upViewport()

}

with.vpPath <-

with.viewport <- function(data, expr, ...) {

# if data is a vpPath it cannot be ROOT since NULL will not dispatch here depth <- if (data$name == "ROOT") 0 else downViewport(data$name) result <- eval.parent(substitute(expr)) upViewport(depth) invisible(result)

}

grid.newpage()

# n and nr are number of cells and rows

n <- nr <- 3

nc <- 1 # must be 1

heights <- unit(c(2, rep(1, nr-1)), "null") downViewport(pushLayout(nr, nc, heights = heights))

vpt <- current.vpTree(all = FALSE)

### relevant part starts here

#########################

xlab <- main <- function(x) if (x) "v"

for(k in 1:n) with(vpt$children[[k]],

print( xyplot(v ~ v, list(v = 1:k), xlab = xlab(k == n), xlim = c(0,n), ylim = c(0,n), main = main(k == 1), scales = list(x = list(draw = k == n), y = list(alternating = 3))), newpage = FALSE)

)

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Oct 11 18:03:23 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:40:41 EST
*