library(grid) source("functions.R") ########### # shapeExercise ########### grid.newpage() y1 <- 1:10 y2 <- 10:1 cp1 <- cprop(y1) cp2 <- cprop(y2) grid.segments(0, cp1, 1, cp2) ########### # unitGparExercise ########### grid.newpage() p1 <- prop(y1) fills <- hcl(240, 60, seq(10, 100, 10)) grid.rect(y=cp1, height=p1, width=unit(1, "in"), just="top", gp=gpar(fill=fills)) ########### # viewportExercise ########### grid.newpage() pushViewport(viewport(x=0, width=1/3, just="left")) spine(y1) popViewport() pushViewport(viewport(x=1/3, width=1/3, just="left")) connector(y1, y2) popViewport() pushViewport(viewport(x=2/3, width=1/3, just="left")) spine(y2) popViewport() ########### # layoutExercise ########### grid.newpage() pushViewport(viewport(layout=grid.layout(1, 3))) pushViewport(viewport(layout.pos.col=1)) spine(y1) popViewport() pushViewport(viewport(layout.pos.col=2)) connector(y1, y2) popViewport() pushViewport(viewport(layout.pos.col=3)) spine(y2) popViewport() ########### # cplotExercise ########### grid.newpage() pushViewport(plotViewport(c(4, 4, 2, 2))) pushViewport(viewport(layout=grid.layout(1, 5))) pushViewport(viewport(layout.pos.col=2, gp=gpar(fill="grey"))) spine(y1) grid.text("V1", y=unit(-1, "lines")) popViewport() pushViewport(viewport(layout.pos.col=3)) connector(y1, y2) popViewport() pushViewport(viewport(layout.pos.col=4, gp=gpar(fill="grey"))) spine(y2) grid.text("V2", y=unit(-1, "lines")) popViewport() grid.yaxis() grid.rect() popViewport(2) ########### # reuseViewportExercise ########### grid.newpage() mtcarsExp <- rbind(apply(mtcars[c("mpg", "disp")], 2, log), mtcars[c("mpg", "disp")]) mtcarsExp$am <- rep(ifelse(mtcars$am, "manual", "automatic"), 2) mtcarsExp$logged <- rep(c("logged", "untransformed"), each=nrow(mtcars)) library(lattice) plot <- xyplot(mpg ~ disp | am*logged, mtcarsExp, scales=list(relation="free", x=list(at=list(TRUE, TRUE, NULL, NULL)), y=list(limits=list(c(2.2, 3.6), c(2.2, 3.6), c(10, 35), c(10, 35)), at=list(TRUE, NULL, TRUE, NULL))), par.settings=list(layout.heights=list(axis.panel=c(1, 0), top.padding=3), layout.widths=list(axis.panel=c(1, 0)))) library(latticeExtra) print(useOuterStrips(plot)) downViewport("plot_01.strip.2.2.off.vp") grid.xaxis(main=FALSE, gp=gpar(cex=.8)) upViewport(0) downViewport("plot_01.strip.1.2.off.vp") grid.xaxis(main=FALSE, gp=gpar(cex=.8)) upViewport(0) ########### # editgrobExercise ########### grid.newpage() print( densityplot( ~ weight | group, PlantGrowth, layout=c(1, 3)) ) grid.edit("plot_01.bg.strip.1.1", gp=gpar(fill="pink"))