如何从R clusplot()获取点坐标和簇标签

时间:2015-05-12 14:01:48

标签: r ggplot2 cluster-analysis

我使用k-medoids算法pam根据下面的(对称)距离矩阵tmp进行聚类:

if(!require("cluster")) { install.packages("cluster");  require("cluster") } 
tmp <- matrix(tmp <- matrix(c( 0,  20,  20,  20,  40,  60,  60,  60, 100, 120, 120, 120,
             20,   0,  20,  20,  60,  80,  40,  80, 120, 100, 140, 120,
             20,  20,   0,  20,  60,  80,  80,  80, 120, 140, 140,  80,
             20,  20,  20,   0,  60,  80,  80,  80, 120, 140, 140, 140,
             40,  60,  60,  60,   0,  20,  20,  20,  60,  80,  80,  80,
             60,  80,  80,  80,  20,   0,  20,  20,  40,  60,  60,  60,
             60,  40,  80,  80,  20,  20,   0,  20,  60,  80,  80,  80,
             60,  80,  80,  80,  20,  20,  20,   0,  60,  80,  80,  80,
             100, 120, 120, 120,  60,  40,  60,  60,   0,  20,  20,  20,
             120, 100, 140, 140,  80,  60,  80,  80,  20,   0,  20,  20,
             120, 140, 140, 140,  80,  60,  80,  80,  20,  20,   0,  20,
             120, 120,  80, 140,  80,  60,  80,  80,  20,  20,  20,   0),
             nr=12, dimnames=list(LETTERS[1:12], LETTERS[1:12]))
tmp_pam <- pam(as.dist(tmp, diag = TRUE, upper = TRUE) , k=3)
tmp_pam$clusinfo # get cluster info
tmp_pam$silinfo # get silhouette information
clusplot(tmp_pam)

我已阅读clusplot cmdscale使用princompclusplot,这是有道理的。但是,没有给出操作的顺序。

如何从{{1}}的输出中获取Component1和Component2坐标及其群集标签和点ID?我想要访问这些以便修改/将它们绘制在ggplot中。

我可以猜测绘图与剪影信息有某种关系但不太明白我们如何进入下面的最终情节:

enter image description here

1 个答案:

答案 0 :(得分:0)

根据文档,clusplot使用

  • 主成分分析
  • 多维缩放

投射您的数据。可能取决于您是否通过了数据或距离矩阵。