Produce graphics to help interpreting a somRes object.

# S3 method for somRes
  what = c("obs", "prototypes", "energy", "add"),
  type = switch(what, obs = "hitmap", prototypes = "color", add = "pie", energy =
  variable = NULL,
  my.palette = NULL,
  is.scaled = if (x$parameters$type == "numeric") TRUE else FALSE,
  show.names = TRUE,
  names = if (what != "energy") switch(type, graph = 1:prod(x$parameters$the.grid$dim),
    1:prod(x$parameters$the.grid$dim)) else NULL,
  proportional = TRUE,
  pie.graph = FALSE,
  pie.variable = NULL,
  s.radius = 1,
  view = if (x$parameters$type == "korresp") "r" else NULL,



A somRes class object.


What you want to plot. Either the observations (obs, default case), the evolution of energy (energy), the prototypes (prototypes) or an additional variable (add).


Further argument indicating which type of chart you want to have. Choices depend on the value of what (what="energy" has no type argument). Default values are "hitmap" for obs, "color" for prototypes and "pie" for add. See section ``Details'' below for further details.


Either the variable to be used for what="add" or the index of the variable of the data set to consider. For type="boxplot", the default value is the sequence from 1 to the minimum between 5 and the number of columns of the data set. In all other cases, default value is 1. See somRes.plotting for further details.


A vector of colors. If omitted, predefined palettes are used, depending on the plot case. This argument is used for the following combinations: all "color" types and "prototypes"/"poly.dist".


A boolean indicating whether values should be scaled prior to plotting or not. Default value is TRUE when type="numeric" and FALSE in the other cases.


Boolean used to indicate whether each neuron should have a title or not, if relevant. Default to TRUE. It is feasible on the following cases: all "color", "lines", "meanline", "barplot", "boxplot", "names" types, "add"/"pie", "prototypes"/"umatrix", "prototypes"/"poly.dist" and "add"/"words".


The names to be printed for each neuron if show.names=TRUE. Default to a number which identifies the neuron.


Boolean used when what="add" and type="pie". It indicates if the pies should be proportional to the number of observations in the class. Default value is TRUE.


Boolean used when what="add" and type="graph". It indicates if the vertices should be pies or not.


The variable needed to plot the pies when what="add", type="graph" and argument pie.graph=TRUE.


The size of the pies to be plotted (maximum size when proportional=TRUE) for what="add", type="graph" and pie.graph=TRUE. The default value is 0.9.


Used only when the algorithm's type is "korresp". It indicates whether rows ("r") or columns ("c") must be drawn.


Further arguments to be passed to the underlined plot function (which can be plot, barplot, pie... depending on type; see somRes.plotting for further details).


See somRes.plotting for further details and more examples.

See also

trainSOM to run the SOM algorithm, that returns a somRes class object.


Élise Maigné <>
Madalina Olteanu
Nathalie Vialaneix


# run the SOM algorithm on the numerical data of 'iris' data set
iris.som <- trainSOM( = iris[, 1:4], = 2)
# plots
# on energy
plot(iris.som, what = "energy") 

# on observations
plot(iris.som, what = "obs", type = "lines")

# on prototypes
plot(iris.som, what = "prototypes", type = "3d", variable = "Sepal.Length")

# on an additional variable: the flower species
plot(iris.som, what = "add", type = "pie", variable = iris$Species)