如何根据 SIMPROF 用 coloured/symbol 点绘制 nmds
How to plot an nmds with coloured/symbol points based on SIMPROF
嗨,所以我正在尝试绘制 R 中布雷柯蒂斯相异矩阵中的组合数据的 nmds。我已经能够应用 ordielipse()、ordihull(),甚至可以根据以下内容更改颜色由 hclst()
的 cutree() 创建的组因子
例如使用素食包中的沙丘数据
data(dune)
Dune.dis <- vegdist(Dune, method = "bray)
Dune.mds <- metaMDS(Dune, distance = "bray", k=2)
#hierarchical cluster
clua <- hclust(Dune.dis, "average")
plot(clua, hang = -1)
# set groupings
rect.hclust(clua, 4)
grp <- cutree(clua, 4)
#plot mds
plot(Dune.mds, display = "sites", type = "text", cex = 1.5)
#show groupings
ordielipse(Dune.mds, group = grp, border =1, col ="red", lwd = 3)
甚至只用 cutree 给点上色
colvec <- c("red2", "cyan", "deeppink3", "green3")
colvec[grp]
plot(Dune.mds, display = "sites", type = "text", cex = 1.5) #or use type = "points"
points(P4.mds, col = colvec[c2], bg =colvec[c2], pch=21)
但是我真正想做的是使用包 "clustsig" 中的 SIMPROF 函数,然后根据重要的分组为点着色 - 这更像是一种技术编码语言 - 我相信有一种创建一系列因素的方法,但我相信有一种更有效的方法可以做到这一点
这是我到目前为止的代码:
simp <- simprof(Dune.dis, num.expected = 1000, num.simulated = 999, method.cluster = "average", method.distance = "braycurtis", alpha = 0.05, sample.orientation = "row")
#plot dendrogram
simprof.plot(simp, plot = TRUE)
现在我只是不确定下一步如何使用 SIMPROF 定义的分组来绘制 nmds - 我如何使 SIMPROF 结果成为一个因子字符串而不用我自己直接输入它?
提前致谢。
您写道您知道如何使用 cutree
从 hclust
对象获取颜色。然后阅读clustsig::simprof
的文档。这表示 simprof
returns 其结果对象中的 hclust
对象。它还 returns numgroups
这是建议的簇数。现在您拥有了使用您已经知道的 hclust
的 cutree
所需的所有信息。如果您的 simprof
结果称为 simp
,请使用 cutree(simp$hclust, simp$numgroups)
提取与 clustsig::simprof
结果对应的整数向量,并将其用于着色。
我从未使用过 simprof
或 clustsig,但我从其文档中收集了所有这些信息。
嗨,所以我正在尝试绘制 R 中布雷柯蒂斯相异矩阵中的组合数据的 nmds。我已经能够应用 ordielipse()、ordihull(),甚至可以根据以下内容更改颜色由 hclst()
的 cutree() 创建的组因子例如使用素食包中的沙丘数据
data(dune)
Dune.dis <- vegdist(Dune, method = "bray)
Dune.mds <- metaMDS(Dune, distance = "bray", k=2)
#hierarchical cluster
clua <- hclust(Dune.dis, "average")
plot(clua, hang = -1)
# set groupings
rect.hclust(clua, 4)
grp <- cutree(clua, 4)
#plot mds
plot(Dune.mds, display = "sites", type = "text", cex = 1.5)
#show groupings
ordielipse(Dune.mds, group = grp, border =1, col ="red", lwd = 3)
甚至只用 cutree 给点上色
colvec <- c("red2", "cyan", "deeppink3", "green3")
colvec[grp]
plot(Dune.mds, display = "sites", type = "text", cex = 1.5) #or use type = "points"
points(P4.mds, col = colvec[c2], bg =colvec[c2], pch=21)
但是我真正想做的是使用包 "clustsig" 中的 SIMPROF 函数,然后根据重要的分组为点着色 - 这更像是一种技术编码语言 - 我相信有一种创建一系列因素的方法,但我相信有一种更有效的方法可以做到这一点
这是我到目前为止的代码:
simp <- simprof(Dune.dis, num.expected = 1000, num.simulated = 999, method.cluster = "average", method.distance = "braycurtis", alpha = 0.05, sample.orientation = "row")
#plot dendrogram
simprof.plot(simp, plot = TRUE)
现在我只是不确定下一步如何使用 SIMPROF 定义的分组来绘制 nmds - 我如何使 SIMPROF 结果成为一个因子字符串而不用我自己直接输入它?
提前致谢。
您写道您知道如何使用 cutree
从 hclust
对象获取颜色。然后阅读clustsig::simprof
的文档。这表示 simprof
returns 其结果对象中的 hclust
对象。它还 returns numgroups
这是建议的簇数。现在您拥有了使用您已经知道的 hclust
的 cutree
所需的所有信息。如果您的 simprof
结果称为 simp
,请使用 cutree(simp$hclust, simp$numgroups)
提取与 clustsig::simprof
结果对应的整数向量,并将其用于着色。
我从未使用过 simprof
或 clustsig,但我从其文档中收集了所有这些信息。