RDX2 X  plot.printseq source& function(ngrid.r=4, ngrid.c=4, % nspot.r=16, nspot.c=12,  A gridorder=expand.grid(row=1:ngrid.c, col=1:ngrid.r), 6 spotorder=list(x=nspot.r:1, y=nspot.c:1), > acrossrows=FALSE, eps=1, delay1=50, delay2=1000){ 1 oldpar <- par(mar=par()$mar-c(0,0,2.5,0))  on.exit(par(oldpar)) @ plotpoints <- function(i, j, delay1=5000, delay2=10000){ * points(i+xy$x, j+xy$y, pch=15, ' cex=0.5, col="cyan")  x <- 0 & for(k in 1:delay2)x <- x+1 * points(i+xy$x, j+xy$y, pch=15, ) cex=0.5, col="grey60")  x <- 0 & for(k in 1:delay1)x <- x+1 }   xy <- gridorder-1  names(xy) <- c("x","y") " xy$x <- xy$x*(nspot.c+eps) " xy$y <- xy$y*(nspot.r+eps) ) plot(c(1, ngrid.c*(nspot.c+eps)), ) c(1, ngrid.r*(nspot.r+eps)), - type="n",xlab="",ylab="",axes=F)  mtext(side=1, line=1,  > paste("Grid layout: #rows of Grids =", ngrid.r, 9 " #columns of Grids =", ngrid.c)) mtext(side=1, line=2.5,  ? paste("In each grid: #rows of Spots =", nspot.r, 8 " #columns of Spots =", nspot.c))  if (acrossrows) 3 for(j in spotorder$x) for(i in spotorder$y) 6 plotpoints(i,j, delay1=delay1, delay2=delay2) else 5 for(i in spotorder$y) for(j in spotorder$x)  6 plotpoints(i,j, delay1=delay1, delay2=delay2) } ngrid.r@ ngrid.c@ nspot.r@0 nspot.c@( gridorder expand.grid row :? col ? spotorder list x ? y ? acrossrows  eps? delay1@I delay2@@ { <- oldpar par mar - $ mar c@ on.exit plotpoints function i j$@$@È points + xy x" # y pch@. cex?  cyan for k ?"?!"# x" # y$@.%?  grey60&' ?"?  *function(i, j, delay1=5000, delay2=10000){ * points(i+xy$x, j+xy$y, pch=15, ' cex=0.5, col="cyan")  x <- 0 & for(k in 1:delay2)x <- x+1 * points(i+xy$x, j+xy$y, pch=15, ) cex=0.5, col="grey60")  x <- 0 & for(k in 1:delay1)x <- x+1 }#? names# x y# *# x ("#)# y*" plot?)*"?)*" type n xlab  ylab  axes F mtext side? line? paste Grid layout: #rows of Grids =  #columns of Grids =12?3@4 In each grid: #rows of Spots =  #columns of Spots = if&  &  &  y&   x