I suggest to add an argument to levelplot
which displays the z values in the cells.

In the special case of a correlogram the correlation values could
be rotated by 45 degres when the correlation is positive and by
-45 degress when the correlation is negative (see example).

Wolfram

NB: The same code should be to panel.catlevelplot if this panel
function will be implemented.


#---- ADDITIONAL ARGUMENTS FOR panel.levelplot() -------------------

        show.z.values = FALSE,          # display z values in the cells
                                                                # if -1:  if( srt == 0 
) srt <- 45
                                                                #         if( z < 0 )  
srt <- -srt
        cex                     = 1,                    # size of z values
        signif          = 2,                    # number of significant digits of z 
values
        srt                     = 0,                    # rotation of z values


#---- ADDITIONAL CODE AT THE END OF panel.levelplot() --------------

                if( show.z.values ){
                        if( show.z.values < 0 )
                                srt <- ifelse( srt==0, 45, srt ) * sign( z[subscripts] 
)
                        ltext(
                                  x = x[subscripts]
                                , y = y[subscripts]
                                , labels = signif( z[subscripts], signif )
                                , cex = cex
                                , srt = srt
                                )
                }

#---- EXAMPLE ------------------------------------------------------

library(EMV)
data(swiss)
example.corplot.swiss <- function( show.z.values=-1, ... ){
        x.cor <- cor( knn( as.matrix( swiss ) )$data )
        diag( x.cor ) <- 0
        x.names <- colnames( swiss )
        x.cor.data      <- data.frame(
                  x             = rep( x.names, length( x.names ) )
                , y             = rep( x.names, each=length( x.names ) )
                , val   = as.vector( x.cor )
                )
        print( levelplot( val ~ x + y, data = x.cor.data
                , show.z.values = show.z.values
        , scales= list(
              x = list( labels = x.names, rot=90, alternating=F
                  , at = 1 : length( x.names ) )
            , y = list( labels = x.names, alternating=F
                  , at = 1 : length( x.names ) )
            )
        , zlim  = c( -1, 1 )
        , ...
                ))
}

______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Reply via email to