plot.partition            package:cluster            R Documentation

Plot of a Partition of the Data Set

Description:

     Creates plots for visualizing a 'partition' object.

Usage:

     ## S3 method for class 'partition':
     plot(x, ask = FALSE, which.plots = NULL,
          nmax.lab = 40, max.strlen = 5, data = x$data, dist = NULL,
          cor = TRUE, stand = FALSE, lines = 2,
          shade = FALSE, color = FALSE, labels = 0, plotchar = TRUE,
          span = TRUE, xlim = NULL, ylim = NULL, main = NULL, ...)

Arguments:

       x: an object of class '"partition"', typically created by the
          functions 'pam', 'clara', or 'fanny'.

     ask: logical; if true and 'which.plots' is 'NULL',
          'plot.partition' 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 _clusplot_ or '2' for _silhouette_.

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

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

    data: numeric matrix with the scaled data; per default taken from
          the partition object 'x', but can be specified explicitly.

    dist: when 'x' does not have a 'diss' component as for 'pam(*,
          keep.diss=FALSE)', 'dist' must be the dissimilarity if a
          clusplot is desired.

cor,stand,lines,shade,color,labels,plotchar,span,xlim,ylim,main, ...: 
          All optional arguments available for the 'clusplot.default'
          function (except for the 'diss' one) and graphical parameters
          (see 'par') may also be supplied as arguments to this
          function.

Details:

     When 'ask= TRUE', rather than producing each plot sequentially,
     'plot.partition' 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, call 'par(ask= TRUE)' before invoking the plot
     command.

     The _clusplot_ of a cluster partition consists of a
     two-dimensional representation of the observations, in which the
     clusters are indicated by ellipses (see 'clusplot.partition' for
     more details).

     The _silhouette plot_ of a nonhierarchical clustering is fully
     described in Rousseeuw (1987) and in chapter 2 of Kaufman and
     Rousseeuw (1990). For each observation i, a bar is drawn,
     representing its silhouette width s(i), see 'silhouette' for
     details. Observations are grouped per cluster, starting with
     cluster 1 at the top.  Observations with a large s(i) (almost 1)
     are very well clustered, a small s(i) (around 0) means that the
     observation lies between two clusters, and observations with a
     negative s(i) are probably placed in the wrong cluster.

     A clustering can be performed for several values of 'k' (the
     number of clusters).  Finally, choose the value of 'k' with the
     largest overall average silhouette width.

Side Effects:

     An appropriate plot is produced on the current graphics device. 
     This can be one or both of the following choices: 
      Clusplot 
      Silhouette plot

Note:

     In the silhouette plot, observation labels are only printed when
     the number of observations is less than 'nmax.lab' (40, by
     default), for readability.  Moreover, observation labels are
     truncated to maximally 'max.strlen' (5) characters.  
      For more flexibility, use 'plot(silhouette(x), ...)', see
     'plot.silhouette'.

References:

     Rousseeuw, P.J. (1987) Silhouettes: A graphical aid to the
     interpretation and validation of cluster analysis. _J. Comput.
     Appl. Math._, *20*, 53-65.

     Further, the references in 'plot.agnes'.

See Also:

     'partition.object', 'clusplot.partition', 'clusplot.default',
     'pam', 'pam.object', 'clara', 'clara.object', 'fanny',
     'fanny.object', 'par'.

Examples:

     ## generate 25 objects, divided into 2 clusters.
     x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)),
                cbind(rnorm(15,5,0.5), rnorm(15,5,0.5)))
     plot(pam(x, 2))

     ## Save space not keeping data in clus.object, and still clusplot() it:
     data(xclara)
     cx <- clara(xclara, 3, keep.data = FALSE)
     cx$data # is NULL
     plot(cx, data = xclara)

