foobar <- function(...) {}
rm(list=ls())
th <- 48
d <- 3
cpF <- list("Frank", list(th, 1:d))
cop <- acF <- cpF$copula
mplot4 <- function(x, vList, xvar, cvar, rvar, log = "",
verbose=FALSE, show.layout=verbose)
{
dn <- dimnames(x)
v <- setdiff(names(dn), c(xvar, cvar, rvar))
stopifnot(length(v) == 1, 1 <= (nv <- length(dn[[v]])), nv <= length(pcol),
length(pspc) == 2, length(spc) == 2, length(axlabspc) == 2,
length(labspc) == 2, length(auxcol) == 4)
v.col <- colorRampPalette(pcol, space="Lab")(nv)
x <- aperm(x, perm=c(rvar, cvar, v, xvar))
if(is.null(xlab))
xlab <- vList[[xvar]]$expr
z <- as.numeric(vList[[xvar]]$value)
zrange <- range(z)
nx <- length(dn[[cvar]])
nx. <- nx+1+(nx-1)+1
ny <- length(dn[[rvar]])
ny. <- ny+1+(ny-1)+1
opar <- par(no.readonly=TRUE); on.exit(par(opar))
plot.new()
gl <- grid.layout(nx., ny.,
default.units="npc",
widths=c(axlabspc[1], rep(c(pspc[1], spc[1]), nx-1), pspc[1], labspc[1]),
heights=c(labspc[2], rep(c(pspc[2], spc[2]), ny-1), pspc[2], axlabspc[2]))
if(show.layout) grid.show.layout(gl, vp=viewport(width=1.25, height=1.25))
pushViewport(viewport(layout=gl))
for(i in 1:nx) {
i. <- 2*i
if(verbose) cat(sprintf("plot row %d (%d): [columns:] ", i, i.))
yrange <- range(x[i,,,])
for(j in 1:ny) {
j. <- 2*j
if(verbose) cat(sprintf("%d (%d) ", j, j.))
pushViewport(viewport(layout.pos.row=i., layout.pos.col=j.))
grid.rect(gp=gpar(col=NA, fill=auxcol[3]))
par(plt = gridPLT())
par(new=TRUE)
plot(zrange, yrange, log=log, type="n", ann=FALSE, axes=FALSE)
grid(col=auxcol[4], lty="solid", lwd=grid.lwd, equilogs=FALSE)
for(k in 1:nv) points(z, x[i,j,k,], type="b", col=v.col[k])
c1 <- auxcol[1]
if(i == nx)
axis(1, lwd=ax.lwd, col=NA, col.ticks=c1, col.axis=c1)
if(j == 1) {
if(packageVersion("sfsmisc") >= "1.0-21")
eaxis(2, lwd=ax.lwd, col=NA, col.ticks=c1, col.axis=c1,
small.args=list(col=NA, col.ticks=c1, col.axis=c1))
else
eaxis(2, lwd=ax.lwd, col=NA, col.ticks=c1, col.axis=c1)
}
upViewport()
if(i == 1) {
pushViewport(viewport(layout.pos.row=1, layout.pos.col=j.))
grid.rect(gp=gpar(col=NA, fill=auxcol[2]))
grid.text(parse(text=dn[[cvar]][j]), x=0.5, y=0.5, gp=gpar(cex=tx.cex))
upViewport()
}
if(j == 2) {
pushViewport(viewport(layout.pos.row=i., layout.pos.col=nx.))
grid.rect(gp=gpar(col=NA, fill=auxcol[2]))
grid.text(parse(text=dn[[rvar]][i]), x=0.5, y=0.5, gp=gpar(cex=tx.cex), rot=-90)
upViewport()
}
}
if(verbose) cat("\n")
}
pushViewport(viewport(layout.pos.row=ny., layout.pos.col=2:(ny.-1)))
ll <- 0.01
upViewport()
invisible(gl)
}