289 lines
8.7 KiB
R
289 lines
8.7 KiB
R
### R code from vignette source 'viewports.Rnw'
|
|
|
|
###################################################
|
|
### code chunk number 1: viewports.Rnw:26-31
|
|
###################################################
|
|
library(grDevices)
|
|
library(stats) # for runif()
|
|
library(grid)
|
|
ps.options(pointsize = 12)
|
|
options(width = 60)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 2: viewports.Rnw:50-53
|
|
###################################################
|
|
pushViewport(viewport())
|
|
upViewport()
|
|
pushViewport(viewport())
|
|
|
|
|
|
###################################################
|
|
### code chunk number 3: viewports.Rnw:68-70
|
|
###################################################
|
|
grid.newpage()
|
|
|
|
|
|
|
|
###################################################
|
|
### code chunk number 4: viewports.Rnw:71-76
|
|
###################################################
|
|
pushViewport(viewport(name = "A"))
|
|
upViewport()
|
|
pushViewport(viewport(name = "B"))
|
|
upViewport()
|
|
downViewport("A")
|
|
|
|
|
|
###################################################
|
|
### code chunk number 5: viewports.Rnw:85-86
|
|
###################################################
|
|
seekViewport("B")
|
|
|
|
|
|
###################################################
|
|
### code chunk number 6: viewports.Rnw:91-93
|
|
###################################################
|
|
current.vpTree()
|
|
|
|
|
|
|
|
###################################################
|
|
### code chunk number 7: vpstackguts
|
|
###################################################
|
|
vp <- viewport(width = 0.5, height = 0.5)
|
|
grid.rect(vp = vpStack(vp, vp))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 8: viewports.Rnw:114-116
|
|
###################################################
|
|
grid.rect(gp = gpar(col = "grey"))
|
|
vp <- viewport(width = 0.5, height = 0.5)
|
|
grid.rect(vp = vpStack(vp, vp))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 9: viewports.Rnw:140-142
|
|
###################################################
|
|
grid.newpage()
|
|
|
|
|
|
|
|
###################################################
|
|
### code chunk number 10: viewports.Rnw:143-146
|
|
###################################################
|
|
pushViewport(viewport(name = "A"))
|
|
pushViewport(viewport(name = "B"))
|
|
pushViewport(viewport(name = "A"))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 11: viewports.Rnw:152-154
|
|
###################################################
|
|
seekViewport("A")
|
|
current.vpTree(FALSE)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 12: viewports.Rnw:159-161
|
|
###################################################
|
|
seekViewport(vpPath("B", "A"))
|
|
current.vpTree(FALSE)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 13: viewports.Rnw:166-167
|
|
###################################################
|
|
vpPath("A", "B")
|
|
|
|
|
|
###################################################
|
|
### code chunk number 14: viewports.Rnw:174-176 (eval = FALSE)
|
|
###################################################
|
|
## seekViewport(vpPath("A", "B"))
|
|
## seekViewport("A::B")
|
|
|
|
|
|
###################################################
|
|
### code chunk number 15: viewports.Rnw:185-187
|
|
###################################################
|
|
x <- runif(10)
|
|
y <- runif(10)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 16: viewports.Rnw:192-194
|
|
###################################################
|
|
xscale <- extendrange(x)
|
|
yscale <- extendrange(y)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 17: viewports.Rnw:203-208
|
|
###################################################
|
|
top.vp <-
|
|
viewport(layout=grid.layout(3, 3,
|
|
widths=unit(c(5, 1, 2), c("lines", "null", "lines")),
|
|
heights=unit(c(5, 1, 4), c("lines", "null", "lines"))))
|
|
|
|
|
|
|
|
###################################################
|
|
### code chunk number 18: viewports.Rnw:209-210
|
|
###################################################
|
|
grid.show.layout(viewport.layout(top.vp))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 19: viewports.Rnw:217-227
|
|
###################################################
|
|
margin1 <- viewport(layout.pos.col = 2, layout.pos.row = 3,
|
|
name = "margin1")
|
|
margin2 <- viewport(layout.pos.col = 1, layout.pos.row = 2,
|
|
name = "margin2")
|
|
margin3 <- viewport(layout.pos.col = 2, layout.pos.row = 1,
|
|
name = "margin3")
|
|
margin4 <- viewport(layout.pos.col = 3, layout.pos.row = 2,
|
|
name = "margin4")
|
|
plot <- viewport(layout.pos.col = 2, layout.pos.row = 2,
|
|
name = "plot", xscale = xscale, yscale = yscale)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 20: viewports.Rnw:234-235
|
|
###################################################
|
|
splot <- vpTree(top.vp, vpList(margin1, margin2, margin3, margin4, plot))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 21: viewports
|
|
###################################################
|
|
pushViewport(splot)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 22: grid (eval = FALSE)
|
|
###################################################
|
|
## labelvp <- function(name) {
|
|
## seekViewport(name)
|
|
## grid.rect(gp = gpar(col = "grey", lwd = 5))
|
|
## grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
|
|
## height = unit(1, "lines"), just = c("left", "top"),
|
|
## gp = gpar(fill = "grey", col = NULL))
|
|
## grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
|
|
## just = c("left", "top"), gp = gpar(col = "white"))
|
|
## }
|
|
## labelvp("plot")
|
|
## labelvp("margin1")
|
|
## labelvp("margin2")
|
|
## labelvp("margin3")
|
|
## labelvp("margin4")
|
|
|
|
|
|
###################################################
|
|
### code chunk number 23: plot (eval = FALSE)
|
|
###################################################
|
|
## seekViewport("plot")
|
|
## grid.points(x, y)
|
|
## grid.xaxis()
|
|
## grid.yaxis()
|
|
## grid.rect()
|
|
|
|
|
|
###################################################
|
|
### code chunk number 24: margin1 (eval = FALSE)
|
|
###################################################
|
|
## seekViewport("margin1")
|
|
## grid.text("Random X", y = unit(1, "lines"))
|
|
|
|
|
|
###################################################
|
|
### code chunk number 25: margin2 (eval = FALSE)
|
|
###################################################
|
|
## seekViewport("margin2")
|
|
## grid.text("Random Y", x = unit(1, "lines"), rot = 90)
|
|
##
|
|
|
|
|
|
###################################################
|
|
### code chunk number 26: viewports.Rnw:287-293
|
|
###################################################
|
|
pushViewport(viewport(w = 0.9, h = 0.9))
|
|
pushViewport(splot)
|
|
labelvp <- function(name) {
|
|
seekViewport(name)
|
|
grid.rect(gp = gpar(col = "grey", lwd = 5))
|
|
grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
|
|
height = unit(1, "lines"), just = c("left", "top"),
|
|
gp = gpar(fill = "grey", col = NULL))
|
|
grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
|
|
just = c("left", "top"), gp = gpar(col = "white"))
|
|
}
|
|
labelvp("plot")
|
|
labelvp("margin1")
|
|
labelvp("margin2")
|
|
labelvp("margin3")
|
|
labelvp("margin4")
|
|
seekViewport("plot")
|
|
grid.points(x, y)
|
|
grid.xaxis()
|
|
grid.yaxis()
|
|
grid.rect()
|
|
seekViewport("margin1")
|
|
grid.text("Random X", y = unit(1, "lines"))
|
|
seekViewport("margin2")
|
|
grid.text("Random Y", x = unit(1, "lines"), rot = 90)
|
|
|
|
|
|
|
|
###################################################
|
|
### code chunk number 27: viewports.Rnw:307-308
|
|
###################################################
|
|
upViewport(0)
|
|
|
|
|
|
###################################################
|
|
### code chunk number 28: annguts (eval = FALSE)
|
|
###################################################
|
|
## seekViewport("margin3")
|
|
## grid.text("The user adds a title!", gp = gpar(fontsize = 20))
|
|
##
|
|
|
|
|
|
###################################################
|
|
### code chunk number 29: viewports.Rnw:325-333
|
|
###################################################
|
|
pushViewport(viewport(w = 0.9, h = 0.9))
|
|
pushViewport(splot)
|
|
labelvp <- function(name) {
|
|
seekViewport(name)
|
|
grid.rect(gp = gpar(col = "grey", lwd = 5))
|
|
grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
|
|
height = unit(1, "lines"), just = c("left", "top"),
|
|
gp = gpar(fill = "grey", col = NULL))
|
|
grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
|
|
just = c("left", "top"), gp = gpar(col = "white"))
|
|
}
|
|
labelvp("plot")
|
|
labelvp("margin1")
|
|
labelvp("margin2")
|
|
labelvp("margin3")
|
|
labelvp("margin4")
|
|
seekViewport("plot")
|
|
grid.points(x, y)
|
|
grid.xaxis()
|
|
grid.yaxis()
|
|
grid.rect()
|
|
seekViewport("margin1")
|
|
grid.text("Random X", y = unit(1, "lines"))
|
|
seekViewport("margin2")
|
|
grid.text("Random Y", x = unit(1, "lines"), rot = 90)
|
|
|
|
seekViewport("margin3")
|
|
grid.text("The user adds a title!", gp = gpar(fontsize = 20))
|
|
|
|
popViewport(0)
|
|
|
|
|