Hello, Is it possible to call a graphing function that uses layout() multiple times and layout those outputs ? Here's a minimal example : myplot <- function() { layout(matrix(1:2, nrow=1), widths = c(1, 1)) plot(1:10) plot(10:1) } layout(matrix(1:2), heights = c(1, 2)) myplot() myplot() -------------------------------------- Dario Strbenac Research Assistant Cancer Epigenetics Garvan Institute of Medical Research Darlinghurst NSW 2010 Australia
On Thu, Dec 16, 2010 at 7:00 PM, Dario Strbenac <D.Strbenac at garvan.org.au> wrote:> Hello, > > Is it possible to call a graphing function that uses layout() multiple times and layout those outputs ? Here's a minimal example : > > myplot <- function() > { > ? ? ? ?layout(matrix(1:2, nrow=1), widths = c(1, 1)) > ? ? ? ?plot(1:10) > ? ? ? ?plot(10:1) > } > > layout(matrix(1:2), heights = c(1, 2)) > myplot() > myplot()layout() will always start a new layout of plots. AFAIK there's no way to make it recursive. Peter
On 12/17/2010 02:00 PM, Dario Strbenac wrote:> Hello, > > Is it possible to call a graphing function that uses layout() multiple times and layout those outputs ? Here's a minimal example : > > myplot<- function() > { > layout(matrix(1:2, nrow=1), widths = c(1, 1)) > plot(1:10) > plot(10:1) > } > > layout(matrix(1:2), heights = c(1, 2)) > myplot() > myplot() >Hi Dario, Try split.screen followed up by subplot in the TeachingDemos package. split.screen(c(2,2)) screen(1) plot(1:10) subplot(plot(rnorm(5)),c(1,5),c(5,10)) screen(2) plot(1:10) subplot(plot(rnorm(5)),c(1,5),c(5,10)) screen(3) plot(1:10) subplot(plot(rnorm(5)),c(1,5),c(5,10)) The final plots are left as an exercise. Jim