Plot Convex Hulls of Clusters
This function produces a two-dimensional scatter plot with added convex hulls for clusters.
hullplot( x, cl, col = NULL, cex = 0.5, hull_lwd = 1, hull_lty = 1, solid = TRUE, alpha = 0.2, main = "Convex Cluster Hulls", ... )
x |
a data matrix. If more than 2 columns are provided, then the data is plotted using the first two principal components. |
cl |
a clustering. Either a numeric cluster assignment vector or a
clustering object (a list with an element named |
col |
colors used for clusters. Defaults to the standard palette. The first color (default is black) is used for noise/unassigned points (cluster id 0). |
cex |
expansion factor for symbols. |
hull_lwd, hull_lty |
line width and line type used for the convex hull. |
solid, alpha |
draw filled polygons instead of just lines for the convex hulls? alpha controls the level of alpha shading. |
main |
main title. |
... |
additional arguments passed on to plot. |
Michael Hahsler
set.seed(2) n <- 400 x <- cbind( x = runif(4, 0, 1) + rnorm(n, sd = 0.1), y = runif(4, 0, 1) + rnorm(n, sd = 0.1) ) cl <- rep(1:4, time = 100) ### original data with true clustering hullplot(x, cl, main = "True clusters") ### use differnt symbols hullplot(x, cl, main = "True clusters", pch = cl) ### just the hulls hullplot(x, cl, main = "True clusters", pch = NA) ### a version suitable for b/w printing) hullplot(x, cl, main = "True clusters", solid = FALSE, col = "black", pch = cl) ### run some clustering algorithms and plot the resutls db <- dbscan(x, eps = .07, minPts = 10) hullplot(x, db, main = "DBSCAN") op <- optics(x, eps = 10, minPts = 10) opDBSCAN <- extractDBSCAN(op, eps_cl = .07) hullplot(x, opDBSCAN, main = "OPTICS") opXi <- extractXi(op, xi = 0.05) hullplot(x, opXi, main = "OPTICSXi") # Extract minimal 'flat' clusters only opXi <- extractXi(op, xi = 0.05, minimum = TRUE) hullplot(x, opXi, main = "OPTICSXi") km <- kmeans(x, centers = 4) hullplot(x, km, main = "k-means") hc <- cutree(hclust(dist(x)), k = 4) hullplot(x, hc, main = "Hierarchical Clustering")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.