Revision b6fe861fe48f12c1b45d1e68f8508ee6503821ac authored by Gilles Raiche on 24 April 2007, 00:00 UTC, committed by Gabor Csardi on 24 April 2007, 00:00 UTC
1 parent 4e9967d
Raw File
plotnScree.R
"plotnScree" <-
function (nScree, 
                         legend = TRUE,
                         ylab   = "Eigenvalue",
                         xlab   = "Component",
                         main   = "Non Graphical Solutions to Scree Test"
                         ) { 
   if (!inherits(nScree, "nScree"))  stop("Method is only for nScree objects")   
   par(col   = 1, pch = 1)     # Color and symbol for usual scree
   par(mfrow = c(1,1))
   eig        <- nScree$Analysis$Eigenvalues
   k          <- 1:length(eig)
   plotuScree(eig,
               main = main,
               xlab = xlab,
               ylab = ylab
               )
   nk         <- length(eig)  
   noc        <- nScree$Components$noc 
   vp.p       <- lm(eig[c(noc+1,nk)] ~ k[c(noc+1,nk)])
   x          <- sum(c(1,1) * coef(vp.p))
   y          <- sum(c(1,nk)* coef(vp.p))
   par(col = 10)            # Color for optimal coordinates
   lines(k[c(1,nk)],c(x,y))
   par(col = 11,pch=2)            # Color and symbol for parallel analysis
   lines(1:nk, nScree$Analysis$Par.Analysis, type = "b")
   if (legend == TRUE) {
     leg.txt  <- c(paste("Eigenvalues (nkaiser   = ",nScree$Components$nkaiser,")"), 
                 c(paste("Parallel Analysis (n   = ",nScree$Components$nparallel,")")),
                 c(paste("Optimal Coordinates (n = ",nScree$Components$noc,")")),        
                 c(paste("Acceleration Factor (n = ",nScree$Components$naf,")")) )
     legend("topright",
            legend   = leg.txt, 
            pch      = c(1,2,NA,NA), 
            text.col = c(1,3,2,4), col = c(1,3,2,4)
            )        
     }
   naf        <-   nScree$Components$naf
   text(x = noc ,    y = eig[noc],     label = " (OC)", cex = .70, adj = c(0,0), col = 2)       
   text(x = naf + 1, y = eig[naf + 1], label = " (AF)", cex = .70, adj = c(0,0), col = 4)    
   }

back to top