Creates plots for visualizing a partition
object.
# S3 method for partition
plot(x, ask = FALSE, which.plots = NULL,
nmax.lab = 40, max.strlen = 5, data = x$data, dist = NULL,
stand = FALSE, lines = 2,
shade = FALSE, color = FALSE, labels = 0, plotchar = TRUE,
span = TRUE, xlim = NULL, ylim = NULL, main = NULL, ...)
an object of class "partition"
, typically created by the
functions pam
, clara
, or fanny
.
logical; if true and which.plots
is NULL
,
plot.partition
operates in interactive mode, via menu
.
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.
integer indicating the number of labels which is considered too large for single-name labeling the silhouette plot.
positive integer giving the length to which strings are truncated in silhouette plot labeling.
numeric matrix with the scaled data; per default taken
from the partition object x
, but can be specified explicitly.
when x
does not have a diss
component as for
pam(*, keep.diss=FALSE)
, dist
must be the
dissimilarity if a clusplot is desired.
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.
An appropriate plot is produced on the current graphics device. This
can be one or both of the following choices:
Clusplot
Silhouette plot
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.
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)
Run the code above in your browser using DataLab