How to create a cluster plot in R?

前端 未结 2 1911
不知归路
不知归路 2020-12-23 08:47

How can I create a cluster plot in R without using clustplot?

I am trying to get to grips with some clustering (using R) and visualisation (using HTML5 Canvas).

相关标签:
2条回答
  • 2020-12-23 09:10

    Did you mean something like this? Sorry but i know nothing about HTML5 Canvas, only R... But I hope it helps...

    First I cluster the data using kmeans (note that I did not cluster the distance matrix), than I compute the distance matix and plot it using cmdscale. Then I add colors to the MDS-plot that correspond to the groups identified by kmeans. Plus some nice additional graphical features.

    You can access the coordinates from the object created by cmdscale.

    ### some sample data
    require(vegan)
    data(dune)
    
    # kmeans
    kclus <- kmeans(dune,centers= 4, iter.max=1000, nstart=10000)
    
    # distance matrix
    dune_dist <- dist(dune)
    
    # Multidimensional scaling
    cmd <- cmdscale(dune_dist)
    
    # plot MDS, with colors by groups from kmeans
    groups <- levels(factor(kclus$cluster))
    ordiplot(cmd, type = "n")
    cols <- c("steelblue", "darkred", "darkgreen", "pink")
    for(i in seq_along(groups)){
      points(cmd[factor(kclus$cluster) == groups[i], ], col = cols[i], pch = 16)
    }
    
    # add spider and hull
    ordispider(cmd, factor(kclus$cluster), label = TRUE)
    ordihull(cmd, factor(kclus$cluster), lty = "dotted")
    

    enter image description here

    0 讨论(0)
  • 2020-12-23 09:10

    Here you can find one graph to analyze cluster results, "coordinate plot", within "clusplot" package.

    It is not based on PCA. It uses function scale to have all the variables means in a range of 0 to 1, so you can compare which cluster holds the max/min average for each variable.

    install.packages("devtools") ## To be able to download packages from github
    library(devtools)
    install_github("pablo14/clusplus")
    library(clusplus)
    
    ## Create k-means model with 3 clusters
    fit_mtcars=kmeans(mtcars,3)
    
    ## Call the function
    plot_clus_coord(fit_mtcars, mtcars)
    

    This post explains how to use it.

    0 讨论(0)
提交回复
热议问题