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"))




