如何在R中创建簇图?
如何在R中创建簇图而不使用 我试图掌握一些集群(使用R)和可视化(使用HTML5画布) 基本上,我想创建一个图形,但不是绘制数据,我想得到一组二维点或坐标,我可以把它们拉到画布上,然后做一些可能非常有用的事情(但我不确定如何做)。我可以想象我:如何在R中创建簇图?,r,plot,cluster-analysis,R,Plot,Cluster Analysis,如何在R中创建簇图而不使用 我试图掌握一些集群(使用R)和可视化(使用HTML5画布) 基本上,我想创建一个图形,但不是绘制数据,我想得到一组二维点或坐标,我可以把它们拉到画布上,然后做一些可能非常有用的事情(但我不确定如何做)。我可以想象我: 为整个数据集创建相似性矩阵(使用dist) 使用kmeans或类似的方法(使用kmeans)对相似性矩阵进行聚类 使用MDS或PCA绘制结果-但我不确定步骤2和步骤3之间的关系(cmdscale) 我已经检查了问题,并且(最后一个是最有用的) 你的意思是
我已经检查了问题,并且(最后一个是最有用的) 你的意思是这样的吗? 对不起,我对HTML5画布一无所知,只知道R。。。但我希望它能帮助 首先,我使用kmeans对数据进行聚类(注意,我没有对距离矩阵进行聚类),然后计算距离matix并使用cmdscale绘制它。然后,我将颜色添加到MDS图中,这些颜色对应于kmeans标识的组。加上一些漂亮的附加图形功能 可以从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")
###一些示例数据
要求(素食主义者)
数据(沙丘)
#kmeans
kclus在这里,您可以在“clusplot”包中找到一个用于分析聚类结果的图形“坐标图”
它不是基于主成分分析的。它使用function scale将所有变量的平均值设置在0到1的范围内,因此您可以比较哪个集群拥有每个变量的最大/最小平均值
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)
解释如何使用它。谢谢@EDi,这真是太棒了。所以,为了澄清这一点,您需要进行聚类,然后构建一个相似的matirx。然后使用MDS在二维中定位点,然后根据点与簇的关系为点着色。明亮的如果你有机会,你能解释一下这是做什么的吗:小组看我的编辑。groups只是一个包含组名称的对象,仅用于for-loop。好的,我看到您的编辑。最后一个问题,你能对距离矩阵进行聚类吗?还是这是一个疯狂的举动?对不起,我现在正在学习,只是在工作。