Rev 49817 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\documentclass[a4paper]{article}%\VignetteIndexEntry{Demonstrating move-to and line-to}%\VignettePackage{grid}\newcommand{\code}[1]{\texttt{#1}}\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}\newcommand{\grid}{\pkg{grid}}\newcommand{\R}{{\sffamily R}}\setlength{\parindent}{0in}\setlength{\parskip}{.1in}\setlength{\textwidth}{140mm}\setlength{\oddsidemargin}{10mm}\title{Drawing Lines Between Viewports: \\\code{grid.move.to} and \code{grid.line.to}}\author{Paul Murrell}\begin{document}\maketitle<<echo=FALSE, results=hide>>=library(grDevices)library(grid)ps.options(pointsize=12)options(width=60)@Many graphics systems have the notion of a current drawing location.This has been added to Grid, with the additional benefit that thedrawing location can be specified relative to an arbitrary viewport.This allows drawing across coordinatesystems\footnote{There was a request on R-help for exactly thissort of thing - I will try to find the exact reference - and there hassince been another (From: Ross Darnell; Subject: Problems withsegments and multiple graphs). }.The following code demonstrates a simple example (the output isgiven after the code).<<fig, results=hide, fig=TRUE, width=5, height=4, include=FALSE>>=pushViewport(viewport(w=.8, h=.8,layout=grid.layout(1, 3,widths=unit(rep(1, 3),c("null", "inches", "null")))))pushViewport(viewport(layout.pos.col=1, yscale=c(0,4)))grid.grill(); grid.yaxis(); grid.xaxis()grid.points(.5, unit(2, "native"))grid.move.to(.5, unit(2,"native"))popViewport()pushViewport(viewport(layout.pos.col=3, yscale=c(0,2)))grid.grill(); grid.yaxis(); grid.xaxis()grid.points(.5, unit(2, "native"))grid.line.to(.5, unit(2,"native"))@\begin{center}{\includegraphics[width=5in, height=4in]{moveline-fig}}\end{center}@% Start a new page% Not echoed, not evaluated% ONLY here for checkVignettes so that all output doesn't% end up on one enormous page<<eval=FALSE, echo=FALSE>>=grid.newpage()@\end{document}