plot.agnes              package:cluster              R Documentation

Plots of an Agglomerative Hierarchical Clustering

Description:

     Creates plots for visualizing an 'agnes' object.

Usage:

     ## S3 method for class 'agnes':
     plot(x, ask = FALSE, which.plots = NULL, main = NULL,
                sub = paste("Agglomerative Coefficient = ",round(x$ac, digits = 2)),
                adj = 0, nmax.lab = 35, max.strlen = 5, xax.pretty = TRUE, ...)

Arguments:

       x: an object of class '"agnes"', typically created by
          'agnes(.)'.

     ask: logical; if true and 'which.plots' is 'NULL', 'plot.agnes'
          operates in interactive mode, via 'menu'.

which.plots: integer vector or NULL (default), the latter producing
          both plots.  Otherwise, 'which.plots' must contain integers
          of '1' for a _banner_ plot or '2' for a dendrogram or
          ``clustering tree''.

main, sub: main and sub title for the plot, with convenient defaults. 
          See documentation for these arguments in 'plot.default'.

     adj: for label adjustment in 'bannerplot()'.

nmax.lab: integer indicating the number of labels which is considered
          too large for single-name labelling the banner plot.

max.strlen: positive integer giving the length to which strings are
          truncated in banner plot labeling.

xax.pretty: logical or integer indicating if 'pretty(*, n =
          xax.pretty)' should be used for the x axis. 'xax.pretty =
          FALSE' is for back compatibility.

     ...: graphical parameters (see 'par') may also be supplied and are
          passed to 'bannerplot()' or 'pltree()', respectively.

Details:

     When 'ask = TRUE', rather than producing each plot sequentially,
     'plot.agnes' displays a menu listing all the plots that can be
     produced. If the menu is not desired but a pause between plots is
     still wanted one must set 'par(ask= TRUE)' before invoking the
     plot command.

     The banner displays the hierarchy of clusters, and is equivalent
     to a tree. See Rousseeuw (1986) or chapter 5 of Kaufman and
     Rousseeuw (1990). The banner plots distances at which observations
     and clusters are merged. The observations are listed in the order
     found by the 'agnes' algorithm, and the numbers in the 'height'
     vector are represented as bars between the observations.

     The leaves of the clustering tree are the original observations. 
     Two branches come together at the distance between the two
     clusters being merged.

     For more customization of the plots, rather call 'bannerplot' and
     'pltree' directly with corresponding arguments, e.g., 'xlab' or
     'ylab'.

Side Effects:

     Appropriate plots are produced on the current graphics device.
     This can be one or both of the following choices: 
      Banner 
      Clustering tree

Note:

     In the banner plot, observation labels are only printed when the
     number of observations is limited less than 'nmax.lab' (35, by
     default), for readability.  Moreover, observation labels are
     truncated to maximally 'max.strlen' (5) characters.

References:

     Kaufman, L. and Rousseeuw, P.J. (1990) _Finding Groups in Data: An
     Introduction to Cluster Analysis_. Wiley, New York.

     Rousseeuw, P.J. (1986). A visual display for hierarchical
     classification, in _Data Analysis and Informatics 4_; edited by E.
     Diday, Y. Escoufier, L. Lebart, J. Pages, Y. Schektman, and R.
     Tomassone. North-Holland, Amsterdam, 743-748.

     Struyf, A., Hubert, M. and Rousseeuw, P.J. (1997) Integrating
     Robust Clustering Techniques in S-PLUS, _Computational Statistics
     and Data Analysis_, *26*, 17-37.

See Also:

     'agnes' and 'agnes.object'; 'bannerplot', 'pltree', and 'par'.

Examples:

     ## Can also pass `labels' to pltree() and bannerplot():
     data(iris)
     cS <- as.character(Sp <- iris$Species)
     cS[Sp == "setosa"] <- "S"
     cS[Sp == "versicolor"] <- "V"
     cS[Sp == "virginica"] <- "g"
     ai <- agnes(iris[, 1:4])
     plot(ai, labels = cS, nmax = 150)# bannerplot labels are mess

