plot.partition {cluster} | R Documentation |
Creates plots for visualizing a partition
object.
## 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, ...)
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. |
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.
An appropriate plot is produced on the current graphics device. This
can be one or both of the following choices:
Clusplot
Silhouette plot
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
.
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
.
partition.object
, clusplot.partition
,
clusplot.default
, pam
,
pam.object
, clara
,
clara.object
, fanny
,
fanny.object
, par
.
## 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)