Nothing
#created August 4, 2006
#last revised September 5, 2006
#create dot file for graphviz from ICLUST output
#inspired by sem.path.diagram by J. Fox
"ICLUST.graph" <-
function(ic.results, out.file,min.size=1,short=FALSE,labels=NULL,
size=c(8,6), node.font=c("Helvetica", 14),
edge.font=c("Helvetica", 12), rank.direction=c("RL","TB","LR","BT"), digits=2,title="ICLUST", ...){
if(!missing(out.file)){
out <- file(out.file, "w")
on.exit(close(out))
}
else out <- stdout()
results <- ic.results$results
if (length(labels)==0) {
var.labels <- rownames(ic.results$loadings)} else {var.labels=labels}
# if(dim(var.labels)[1] < dim(var.labels)[2]) {var.labels <- t(var.labels)}
clusters <- as.matrix(ic.results$clusters)
#if(length(clusters)==length(var.labels) ) {clusters <- as.matrix(clusters)}
num <- nrow(results)
if (short) {var.labels <- paste("V",1:nrow,(var.labels),sep="")}
rank.direction <- match.arg(rank.direction)
#first some basic setup parameters
cat( file=out,paste('digraph ICLUST', ' {\n', sep=""))
cat(file=out, paste(' rankdir=', rank.direction, ';\n', sep=""))
cat(file=out, paste(' size="',size[1],',',size[2],'";\n', sep=""))
cat(file=out, paste(' node [fontname="', node.font[1],
'" fontsize=', node.font[2], ' shape=box, width=2];\n', sep=""))
cat(file=out, paste(' edge [fontname="', edge.font[1],
'" fontsize=', edge.font[2], '];\n', sep=""))
cat(file=out, paste(' label = "' ,title,'";
fontsize=20;\n', sep=""))
#create the items as boxes
#add the sign from the clusters
num.var <- nrow(results)+1 #how many variables?
if (num.var > dim(clusters)[1]) {num.var <- dim(clusters)[1]}
for (i in 1:num.var) { if (max(clusters[i,]) > 0 ) {
cat(file=out,paste('V',i,' [label = "',var.labels[i], '"];\n', sep="")) } else {
cat(file=out,paste('V',i,' [label = "-',var.labels[i], '"];\n', sep="")) }
}
#show the cluster structure with ellipses
cat(file=out,paste('node [shape=ellipse, width ="1"];\n', sep=""))
#draw the edges
for (i in 1:num) {if(results[i,1]>0) { #avoid printing null results
cat(file=out,paste(row.names(results)[i], '-> ', results[i,1], ' [ label = ',round(results[i,"r1"],digits),' ];\n', sep=""))
cat(file=out,paste(row.names(results)[i], '-> ', results[i,2], ' [ label = ',round(results[i,"r2"],digits),' ];\n', sep=""))
}}
#label the clusters with alpha and beta
for (i in 1:num) {if(results[i,1]>0) { #don't print blank results
if (results[i,"size"] > min.size) {
cat(file=out,paste(row.names(results)[i], ' [label = "',row.names(results)[i],'\\n alpha= ',round(results[i,"alpha"],digits),'\\n beta= ' ,round(results[i,"beta"],digits),'\\nN= ',results[i,"size"], '"] ;\n', sep=""))
} else {cat(file=out,paste(row.names(results)[i],' ;\n', sep="")) } #short names for small clusters
}}
#keep the boxes all at the same rank (presumably the left side)
cat(file=out, paste('{ rank=same;\n', sep=""))
for (i in 1:num.var) { cat(file=out,paste('V',i,';', sep=""))
}
cat(file=out, paste('}}', sep="")) # we are finished
} # end of ICLUST.graph
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.