klaR (version 0.6-14)

shardsplot: Plotting Eight Direction Arranged Maps or Self-Organizing Maps

Description

Plotting method for objects of class EDAM or som.

Usage

shardsplot(object, plot.type = c("eight", "four", "points", "n"), 
    expand = 1, stck = TRUE, grd = FALSE, standardize = FALSE, 
    data.or = NA, label = FALSE, plot = TRUE, classes = 0, 
    vertices = TRUE, classcolors = "rainbow", wghts = 0, 
    xlab = "Dimension 1", ylab = "Dimension 2", xaxs = "i", 
    yaxs = "i", plot.data.column = NA,
    log.classes = FALSE, revert.colors = FALSE, ...)

level_shardsplot(object, par.names, rows = 1:NCOL(object$data), centers = rep(NA, length(par.names)), class.labels = NA, revert.colors = rep(FALSE, length(par.names)), log.classes = rep(FALSE, length(par.names)), centeredcolors = colorRamp(c("red", "white", "blue")), mfrow = c(2, 2), plot.type = c("eight", "four", "points", "n"), expand = 1, stck = TRUE, grd = FALSE, standardize = FALSE, label = FALSE, plot = TRUE, vertices = TRUE, classcolors = "topo", wghts = 0, xlab = "Dimension 1", ylab = "Dimension 2", xaxs = "i", yaxs = "i", ...)

# S3 method for EDAM plot(...)

Arguments

object

an object of class EDAM or som.

par.names

names used to lable the data columns

rows

vector with indices of colomns to be plotted

centers

vector of type numeric defining the class centers for the data. NA if data does not have a center.

class.labels

matrix of type text and dimension(3, NROW(object$data)) defining the lables to be used for maximum, minimum and central value.

centeredcolors

colors to represent the classes with a central value

mfrow

parameter defining number of plots on a page. see par

plot.type

a character giving the shape of the shards. Available are “eight” and “four” for octagons resp. rectangles, and “points” for points. If plot.type is “n”, no shards are plotted at all.

expand

a numeric giving the relative expansion of the axes. A value greater than one implies smaller shards. Varying expand can be sensible for visual reasons.

stck

logical. If TRUE the cells are varied continously corresponding to the differences of direct neighbors in the origin space. Within this variation the relative order of the cells is always preserved.

grd

logical. If TRUE (which automatically sets stck to TRUE), the variation of cells is restricted to their original discrete values.

standardize

logical. If TRUE, then the measurements in object$preimages are standardized before calculating Euclidean distances. Measurements are standardized for each variable by dividing by the variable's standard deviation. Meaningless if object$preimages is a dissimilarity matrix.

data.or

original data and classes where the first k columns are variables and the (k+1)-th column are the classes. If defined and class of object is som, data.or is used to assign a class to each codebook. There a codebook receives the class, from which the majority of its assigned objects origins.

label

logical. If TRUE, the shards are labeled by the rownames of the preimages.

plot

logical. If FALSE, all graphical output is suppressed.

classes

a vector giving alternative classes for objects of class EDAM; classes have to be given in the original order of the data to which EDAM was applied.

vertices

logical. If TRUE the grid is drawn.

classcolors

colors to represent the classes, or a character giving the colorscale for the classes. Since now available scales are rainbow, topo and gray.

wghts

an optional vector of length k giving relative weights of the variables in computing Euclidean distances. Meaningless if object$preimages is a dissimilarity matrix.

xaxs

see par

yaxs

see par

xlab

see par

ylab

see par

further plotting parameters.

plot.data.column

column index defining from data.or providing the data used to calculate the coloring of the cells.

log.classes

boolean indicating that the data should be transformed with the logarithmic function before calculating the cell coloring

revert.colors

boolean indicating that the colorscale should be reverted.

Value

The following list is (invisibly) returned:

Cells.ex

the images of the visualized data

S

the criterion of the visualization

Details

level_shardsplot uses multiple shardsplot representations of a SOM in order to depict how the data used to calculate the SOM is distribution across the map. Two representations are possible for the data, first with a single color ramp from the minimum value to the maximum value. The second representation is usefull for data for which a basic value exists some where between minimum and maximum for which a special color representation should be used (e.g. 0 is indicated with white).

If plot.type is “four” or “eight”, the shape of each shard depends on the relative distances of the actual object or codebook to its up to eight neighbours. If plot.type is “eight”, shardsplot corresponds to the representation method suggested by Cottrell and de Bodt (1996) for Kohonen Self-Organizing Maps. If plot.type is “points”, shardsplot reduces to a usual scatter plot.

References

Cottrell, M., and de Bodt, E. (1996). A Kohonen Map Representation to Avoid Misleading Interpretations. Proceedings of the European Symposium on Atrificial Neural Networks, D-Facto, pp. 103--110.

See Also

EDAM, TopoS, som

Examples

Run this code
# NOT RUN {
# Compute clusters and an Eight Directions Arranged Map for the 
# country data. Plotting the result.
data(countries)
logcount <- log(countries[,2:7])
sdlogcount <- apply(logcount, 2, sd)
logstand <- t((t(logcount) / sdlogcount) * c(1,2,6,5,5,3))
cclasses <- cutree(hclust(dist(logstand)), k = 6)
countryEDAM <- EDAM(logstand, classes = cclasses, sa = FALSE, 
    iter.max = 10, random = FALSE)
plot(countryEDAM, vertices = FALSE, label = TRUE, stck = FALSE)

# Compute and plot a Self-Organizing Map for the iris data
data(iris)
library(som)
irissom <- som(iris[,1:4], xdim = 6, ydim = 14)
shardsplot(irissom, data.or = iris, vertices = FALSE)
opar <- par(xpd = NA)
legend(7.5, 6.1, col = rainbow(3), xjust = 0.5, yjust = 0,
    legend = levels(iris[, 5]), pch = 16, horiz = TRUE)
par(opar)    

level_shardsplot(irissom, par.names = names(iris), 
    class.labels = NA, mfrow = c(2,2))
# }

Run the code above in your browser using DataLab