## # mae.ColorBasedMatrixPlotting() - plot to generate coding for groups with color. # Parameters: # uniqGroups - Vector of unique groups # group - Matrix of the group for the rows of x # data - The data matrix # Shyam(shyamss@hotmail.com) # Date : 07/18/2002 ## mae.colorBasedMatrixPlotting <- function(uniqGroups ,group, data, xindex=1, yindex=2, gbgcolor="black", xlabel="PC1", ylabel="PC2", mainTitle, xrange=range(data),yrange=range(data)) { # mae.colorBasedMatrixPlotting uniqGroups <- as.matrix(uniqGroups ) group <- as.matrix(group) data <- as.matrix(data) loop <- 1 fgcolor <-"black" if(gbgcolor == "white") colors <- cbind("yellow","red","blue","green","magenta","pink", "cyan","black") else colors <- cbind("yellow","red","blue","green","magenta","pink", "cyan","white") clr <- 0 for( x in uniqGroups ) { # x_loop clr <- clr+1 if (clr > 8) clr <- 1 boolX <- as.matrix(group[,1]==x) pts <- matrix(data[boolX,], nc=ncol(data)) colors[clr] if (loop==1) { # main plot 1st time through the loop plot(xrange,yrange,col="transparent",xlim=xrange,ylim=yrange,xlab=xlabel, ylab=ylabel,main=mainTitle,pch=20,col.lab=fgcolor,col.axis=fgcolor, col.main=fgcolor) if (gbgcolor == "black") { rect(xrange[1]-(.039*(xrange[2]-xrange[1])), yrange[1]-(.039*(yrange[2]-yrange[1])), xrange[2]+(.039*(xrange[2]-xrange[1])), yrange[2]+(.039*(yrange[2]-yrange[1])), col=gbgcolor, border=gbgcolor) } } points(pts[,xindex],pts[,yindex], col=colors[clr],pch=20 ) loop <- loop + 1 # next group } # x_loop } # end of mae.colorBasedMatrixPlotting