在R中,如何在对数据进行聚类后绘制相似性矩阵(如块图)?

在R中,如何在对数据进行聚类后绘制相似性矩阵(如块图)?,r,cluster-analysis,R,Cluster Analysis,我想生成一个图表,显示聚集数据和相似性矩阵之间的相关性。 我在R怎么做?在R中是否有任何函数可以在这个链接中创建像图片一样的图形? (只是谷歌搜索了一下,得到了一个链接,显示了我想制作的一个图表) 提前谢谢。在@Chase和@bill_080的评论中建议的一般解决方案需要稍加改进,以(部分)满足OP的需求 一个可重复的例子: require(MASS) set.seed(1) dat <- data.frame(mvrnorm(100, mu = c(2,6,3),

我想生成一个图表,显示聚集数据和相似性矩阵之间的相关性。 我在R怎么做?在R中是否有任何函数可以在这个链接中创建像图片一样的图形? (只是谷歌搜索了一下,得到了一个链接,显示了我想制作的一个图表)


提前谢谢。

在@Chase和@bill_080的评论中建议的一般解决方案需要稍加改进,以(部分)满足OP的需求

一个可重复的例子:

require(MASS)
set.seed(1)
dat <- data.frame(mvrnorm(100, mu = c(2,6,3), 
                          Sigma = matrix(c(10,   2,   4,
                                            2,   3, 0.5,
                                            4, 0.5,   2), ncol = 3)))
在活动设备上产生以下结果:


尽管如此,只有谢泼德图显示了“聚集数据和[dis]相似性矩阵之间的相关性”,而不是图像图(levelplot)。您打算如何计算两个数字之间的相关性,以进行所有成对比较的同素和原始[dis]相似性?

可能的重复请参见刚才回答的问题如何为图形创建相似性矩阵?
dij <- dist(scale(dat, center = TRUE, scale = TRUE))
clust <- hclust(dij, method = "average")
ord <- order(cutree(clust, k = 3))
coph <- cophenetic(clust)
layout(matrix(1:4, ncol = 2))
image(as.matrix(dij)[ord, ord], main = "Original distances")
image(as.matrix(coph)[ord, ord], main = "Cophenetic distances")
image((as.matrix(coph) - as.matrix(dij))[ord, ord], 
      main = "Cophenetic - Original")
plot(coph ~ dij, ylab = "Cophenetic distances", xlab = "Original distances",
     main = "Shepard Plot")
abline(0,1, col = "red")
box()
layout(1)