ladderplot.default <-
function(x, scale=FALSE, col=1, pch=19, lty=1, xlim=c(0.5, ncol(x)+0.5), ylim=range(x), vertical = TRUE, ordered=FALSE, ...)
{
x <- as.data.frame(x)
if (scale)
x <- apply(x, 2, function(x) (x - min(x, na.rm = TRUE))/(max(x,
na.rm = TRUE) - min(x, na.rm = TRUE)))
if (NCOL(x) < 2)
stop("'x' must have at least 2 columns")
nr <- nrow(x)
if (length(col) < nr)
col <- rep(col, nr)[1:nr]
if (length(pch) < nr)
pch <- rep(pch, nr)[1:nr]
if (length(lty) < nr)
lty <- rep(lty, nr)[1:nr]
if (ordered)
x <- x[,order(colnames(x))]
y <- data.frame(values=array(unlist(x)),
ind=factor(rep(1:ncol(x), each=nrow(x)), labels=colnames(x)))
id <- match(colnames(x),levels(y$ind))
if (vertical) {
with(y, stripchart(values ~ ind, pch=pch, ylim=ylim, xlim=xlim, vertical=vertical, col="white", ...))
lapply(1:ncol(x), function(i) points(cbind(rep(i,nr), x[,id[i]]), col=col, pch=pch))
lapply(1:nr, function(i) lines(cbind(id, as.matrix(x)[i,]), col=col[i], lty=lty[i]))
} else {
tmp <- xlim
xlim <- ylim
ylim <- tmp
with(y, stripchart(values ~ ind, pch=pch, ylim=ylim, xlim=xlim, vertical=vertical, col="white", ...))
lapply(1:ncol(x), function(i) points(cbind(x[,id[i]], rep(i,nr)), col=col, pch=pch))
lapply(1:nr, function(i) lines(cbind(as.matrix(x)[i,], id), col=col[i], lty=lty[i]))
}
invisible(NULL)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.