# NOT RUN { p11 <- histogram( ~ height | voice.part, data = singer, xlab="Height") p12 <- densityplot( ~ height | voice.part, data = singer, xlab = "Height") p2 <- histogram( ~ height, data = singer, xlab = "Height") ## simple positioning by split print(p11, split=c(1,1,1,2), more=TRUE) print(p2, split=c(1,2,1,2)) ## Combining split and position: print(p11, position = c(0,0,.75,.75), split=c(1,1,1,2), more=TRUE) print(p12, position = c(0,0,.75,.75), split=c(1,2,1,2), more=TRUE) print(p2, position = c(.5,.75,1,1), more=FALSE) ## Using seekViewport ## repeat same plot, with different polynomial fits in each panel xyplot(Armed.Forces ~ Year, longley, index.cond = list(rep(1, 6)), layout = c(3, 2), panel = function(x, y, ...) { panel.xyplot(x, y, ...) fm <- lm(y ~ poly(x, panel.number())) llines(x, predict(fm)) }) # } # NOT RUN { grid::seekViewport(trellis.vpname("panel", 1, 1)) cat("Click somewhere inside the first panel:\n") ltext(grid::grid.locator(), lab = "linear") # } # NOT RUN { grid::seekViewport(trellis.vpname("panel", 1, 1)) grid::grid.text("linear") grid::seekViewport(trellis.vpname("panel", 2, 1)) grid::grid.text("quadratic") grid::seekViewport(trellis.vpname("panel", 3, 1)) grid::grid.text("cubic") grid::seekViewport(trellis.vpname("panel", 1, 2)) grid::grid.text("degree 4") grid::seekViewport(trellis.vpname("panel", 2, 2)) grid::grid.text("degree 5") grid::seekViewport(trellis.vpname("panel", 3, 2)) grid::grid.text("degree 6") # }
Run the code above in your browser using DataCamp Workspace