plotKmeansClustering {briKmeans} | R Documentation |
Kmeans Clustering Plot
Description
plotKmeansClustering
represents, in different subpanels, each of the clusters obtained after running k-means. The corresponding centroid is highlighted.
Usage
plotKmeansClustering(x, kmeansObj, col=c(8,2), lty=c(2,1), x.coord = NULL,
no.ticks = 5, ...)
Arguments
x |
a data matrix containing |
kmeansObj |
an object of class |
col |
a vector containing colors for the elements in |
lty |
a vector containing the line type for the elements in |
x.coord |
initial x coordinates (time points) where the functional data is observed; if not provided, it is assumed to be |
no.ticks |
number of ticks to be displayed in the X axis |
... |
additional arguments to be passed to the |
Details
The function creates a suitable grid where to plot the different clusters independently. In the i-th cell of the grid, the data points corresponding to the i-th cluster are represented in parallel coordinates and the final centroid is highlighted.
Value
the function returns invisibly a list with the following components:
clusters |
a list containing one cluster per component; observations are given by rows |
centroids |
a list with the centroid of each cluster |
Author(s)
Javier Albert Smet javas@kth.se and Aurora Torrente etorrent@est-econ.uc3m.es
Examples
## simulated data
set.seed(1)
x.coord = seq(0,1,0.01)
x <- matrix(ncol = length(x.coord), nrow = 100)
labels <- matrix(ncol = 100, nrow = 1)
centers <- matrix(ncol = length(x.coord), nrow = 4)
centers[1, ] <- abs(x.coord)-0.5
centers[2, ] <- (abs(x.coord-0.5))^2 - 0.8
centers[3, ] <- -(abs(x.coord-0.5))^2 + 0.7
centers[4, ] <- 0.75*sin(8*pi*abs(x.coord))
for(i in 1:4){
for(j in 1:25){
labels[25*(i-1) + j] <- i
if(i == 1){x[25*(i-1) + j, ] <- abs(x.coord)-0.5 +
rnorm(length(x.coord),0,1.5)}
if(i == 2){x[25*(i-1) + j, ] <- (abs(x.coord-0.5))^2 - 0.8 +
rnorm(length(x.coord),0,1.5)}
if(i == 3){x[25*(i-1) + j, ] <- -(abs(x.coord-0.5))^2 + 0.7 +
rnorm(length(x.coord),0,1.5)}
if(i == 4){x[25*(i-1) + j, ] <- 0.75*sin(8*pi*abs(x.coord)) +
rnorm(length(x.coord),0,1.5)}
}
}
plotKmeansClustering(x, kmeans(x,4))
plotKmeansClustering(x, brik(x,4)$km)
plotKmeansClustering(x, fabrik(x,4)$km)
plotKmeansClustering(x, fabrik(x,4,degFr=10)$km)