标签: dendrogram

如何标记剪切树形图的终端节点?

我使用以下代码在特定高度剪切树形图.我遇到的问题是当我剪切树形图时,我无法弄清楚如何向节点添加标签.如何用标签剪切树形图使用R程序?

library(Heatplus)
cc=as.dendrogram(hclust(as.dist(mat),method="single"))
cutplot.dendrogram(cc,h=20)
Run Code Online (Sandbox Code Playgroud)

r hierarchical-clustering dendrogram dendextend

4
推荐指数
1
解决办法
2714
查看次数

如何在R中将树转换为树状图?

如何将树(我的Java程序的输出)转换为R中的树形图?

目前,我正在使用此处给出的建议将树转换为Newick格式.然后我使用apeR中的包来读取Newick格式的树:

library("ape")
cPhylo <- read.tree(file = "gc.tree")
Run Code Online (Sandbox Code Playgroud)

最后我as.hclust在R中使用将树转换为树形图:

dendrogram <- as.hclust(gcPhylo)
Run Code Online (Sandbox Code Playgroud)

但是,树形图需要分支长度.虽然我插入分支长度,但我收到一个错误,说树不是超参数:

as.hclust.phylo(gcPhylo)中的错误:树不是超参数

我想在插入分支长度时我做错了什么.

还有其他方法可以遵循吗?或者如何在将树转换为Newick格式时插入分支长度?等分支长度没问题.

tree r dendrogram

4
推荐指数
3
解决办法
6779
查看次数

如何在树形图(R)中调整x轴的大小?

对于大型数据集,我想在树形图中调整x轴,其中可以看到所有标签.例如,我在这里使用虹膜数据:

    > iris.data=subset(iris,select=-Species)

    > d <- dist(iris.data, method="euclidean")

    > hc <- hclust(d, "ward")

    > plot(hc, hang=-1, main="Dendrogram of Ward's Method", label=iris$Species)
Run Code Online (Sandbox Code Playgroud)

使用绘图功能后,树形图将如下所示:

在此输入图像描述

那么,我将如何调整x轴,以便所有物种都清晰可见.

r dendrogram axis-labels

4
推荐指数
1
解决办法
6415
查看次数

树形图中的相关标签 - MATLAB

我在文件中存储了以下数据集stations.dat:

       Station A 305.2 321.1 420.9 383.5 311.7 197.1 160.2 113.9 60.5 60.5 64.8 154.3
       Station B 281.1 304.0 353.1 231.9 84.6 20.9 11.7 11.9 31.1 75.8 133.0 235.3
       Station C 312.3 342.2 366.2 335.2 200.1  74.4 45.9   27.5 24.0   53.6 87.7 177.0
       Station D 402.2 524.5 554.9 529.5 347.5  176.8 120.2 35.0 12.6 13.3 14.0 61.6
       Station E 261.3 262.7 282.3 232.6 103.8  33.2 16.7   33.2 111.0  149.0 184.8 227.0
Run Code Online (Sandbox Code Playgroud)

通过使用以下命令,

Z = linkage (stations.data,'ward','euc'); 
figure (1), …
Run Code Online (Sandbox Code Playgroud)

matlab plot label cluster-analysis dendrogram

4
推荐指数
1
解决办法
5444
查看次数

如何在R中对数据矩阵进行层次聚类?

我正在尝试对由科学数据生成的数据矩阵进行聚类。我知道我希望如何完成聚类,但不确定如何在 R 中完成这一壮举。

数据如下:

            A1     A2     A3     B1     B2     B3     C1     C2     C3
sample1      1      9     10      2      1     29      2      5     44
sample2      8      1     82      2      8      2      8      2     28
sample3      9      9     19      2      8      1      7      2     27
Run Code Online (Sandbox Code Playgroud)

请考虑 A1、A2、A3 是单个处理的三个重复,B 和 C 也是如此。Sample1 是不同的测试变量。因此,我想对这个矩阵进行分层聚类,以便查看列之间的总体差异,特别是我将制作树状图(树)来观察列的相关性。

有谁知道如何适当地聚类这样的东西?我尝试这样做:

raw.data <- read.delim("test.txt",header=FALSE,stringsAsFactors=FALSE)
dist.mat<-vegdist(raw.data,method="jaccard")
clust.res<-hclust(dist.mat)
plot(clust.res)
Run Code Online (Sandbox Code Playgroud)

...但是,这会产生一棵树,每个样本变量都有分支,而不是每一列。感谢您的任何建议!

r hierarchical-clustering dendrogram

4
推荐指数
1
解决办法
3860
查看次数

如何在R中以NEWICK格式附加群集(树)节点的自举值

我想使用交互式生命树基于Web的工具(iTOL)来制作树(集群)。作为输入文件(或字符串),此工具使用Newick格式,这是一种使用括号和逗号来表示具有边长的图论树的方法。除此之外,还可能支持其他信息,例如群集节点的自举值

例如,在这里我使用包创建了用于聚类分析的数据集clusterGeneration

library(clusterGeneration)
set.seed(1)    
tmp1 <- genRandomClust(numClust=3, sepVal=0.3, numNonNoisy=5,
        numNoisy=3, numOutlier=5, numReplicate=2, fileName="chk1")
data <- tmp1$datList[[2]]
Run Code Online (Sandbox Code Playgroud)

之后,我使用程序包通过引导进行了群集分析评估了对群集节点支持pvclust

set.seed(2)    
y <- pvclust(data=data,method.hclust="average",method.dist="correlation",nboot=100)
plot(y)  
Run Code Online (Sandbox Code Playgroud)

这是集群值和引导值: 集群值和自举值

为了制作Newick文件,我使用了ape软件包:

library(ape)
yy<-as.phylo(y$hclust)
write.tree(yy,digits=2)
Run Code Online (Sandbox Code Playgroud)

write.tree 函数将以Newick格式打印树:

((x2:0.45,x6:0.45):0.043,((x7:0.26,(x4:0.14,(x1:0.14,x3:0.14):0.0064):0.12):0.22,(x5:0.28,x8:0.28 ):0.2):0.011);

这些数字表示分支长度(群集的边缘长度)。按照iTOL帮助页面上的说明(“上传和使用您自己的树”部分),我将自举值手动添加到了Newick文件中(下面的附加值):

((x2:0.45,x6:0.45)74:0.043,(((x7:0.26,(x4:0.14,(x1:0.14,x3:0.14)55:0.0064)68:0.12)100:0.22,(x5:0.28) ,x8:0.28)100:0.2)63:0.011);

当我将字符串上传到iTOL时,效果很好。但是,我有一个庞大的集群,手工完成似乎很乏味...

问题:可以执行而不是手动键入的代码是什么?

引导值可以通过以下方式获得:

(round(y$edges,2)*100)[,1:2]
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式获得用于形成Newick文件的分支长度: …

tree r cluster-analysis dendrogram pvclust

4
推荐指数
1
解决办法
2329
查看次数

如何根据定义的组为树形图的标签着色?(在R中)

我在R中有一个24行和10,000列的数字矩阵.该矩阵的行名基本上是文件名,我从中读取了对应于24行中每一行的数据.除此之外,我有一个单独的因子列表,包含24个entires,指定24个文件所属的组.有3组 - 醇类,碳氢化合物和酯类.它们所属的名称和相应组如下所示:

> MS.mz
[1] "int-354.19" "int-361.35" "int-368.35" "int-396.38" "int-408.41" "int-410.43" "int-422.43"
[8] "int-424.42" "int-436.44" "int-438.46" "int-452.00" "int-480.48" "int-648.64" "int-312.14"
[15] "int-676.68" "int-690.62" "int-704.75" "int-312.29" "int-326.09" "int-326.18" "int-326.31"
[22] "int-340.21" "int-340.32" "int-352.35"

> MS.groups
[1] Alcohol     Alcohol     Alcohol     Alcohol     Hydrocarbon Alcohol     Hydrocarbon Alcohol    
[9] Hydrocarbon Alcohol     Alcohol     Alcohol     Ester       Alcohol     Ester       Ester      
[17] Ester       Alcohol     Alcohol     Alcohol     Alcohol     Alcohol     Alcohol     Hydrocarbon
Levels: Alcohol Ester Hydrocarbon
Run Code Online (Sandbox Code Playgroud)

我想生成一个树形图来查看矩阵中的数据是如何聚类的.所以,我使用了以下命令:

require(vegan)
dist.mat<-vegdist(MS.data.scaled.transposed,method="euclidean")
clust.res<-hclust(dist.mat)
plot(clust.res)
Run Code Online (Sandbox Code Playgroud)

我得到了一个树状图.现在我想根据它们所属的组(即酒精,碳氢化合物或酯类)为树形图中的文件名着色.我查看了论坛上发布的不同例子

r中的标签和颜色叶树形图

使用猿包的R中的标签和颜色叶树形图

使用自举进行群集

,但无法为我的数据实现它.我不确定如何将row.names与MS.groups相关联以获得树形图中的彩色名称.

在使用dendextend生成树时(如https://nycdatascience.com/wp-content/uploads/2013/09/dendextend-tutorial.pdf中所述),我得到以下树

在此输入图像描述

以下是用于生成它的代码: …

plot r cluster-analysis dendrogram dendextend

4
推荐指数
1
解决办法
6661
查看次数

在多个阈值上将 SciPy 分层树状图切割成簇

我想将我的 SciPy 的树状图切割成多个阈值上的多个集群。

我试过使用 fcluster,但它只能削减一个阈值。

(例如,这是我从另一个问题中提取的一段代码。)

import pandas

data = pandas.DataFrame({
'total_runs': {0: 2.489857755536053, 1: 1.2877651950650333, 2: 0.8898850111727028, 3: 0.77750321282732704, 4: 0.72593099987615461, 5: 0.70064977003207007, 6:0.68217502514600825,7: 0.67963194285399975, 8: 0.64238326692987524, 9:0.6102581538587678, 10: 0.52588765899448564, 11: 0.44813665774322564, 12: 0.30434031343774476, 13: 0.26151929543260161, 14: 0.18623657993534984, 15: 0.17494230269731209,16: 0.14023670906519603, 17: 0.096817318756050832, 18:0.085822227670014059, 19: 0.042178447746868117, 20: -0.073494398270518693,21: -0.13699665903273103, 22: -0.13733324345373216, 23: -0.31112299949731331, 24: -0.42369178918768974, 25: -0.54826542322710636,26: -0.56090603814914863, 27: -0.63252372328438811, 28: -0.68787316140457322,29: -1.1981351436422796, 30: -1.944118415387774,31: -2.1899746357945964, 32: -2.9077222144449961}, 
'total_salaries': {0: 3.5998991340231234,1: 1.6158435140488829, 2: 0.87501176080187315, 3: 0.57584734201367749, 4: 0.54559862861592978, 5: …
Run Code Online (Sandbox Code Playgroud)

python hierarchical-clustering dendrogram scipy

4
推荐指数
1
解决办法
2385
查看次数

如何在树形图中标记彩色条

我如何为树形图中添加的一些彩色条添加标签?

下面的代码将显示我为瞄准任务所做的两次尝试,即在彩色条的标签中将值1连接到红色并将值0连接到颜色白色.

# replacing the graphic window parameter so the color bars would fit
par( oma = c(0,1,1,1), mgp = c(1,0.5,0), mar = c(10,2,2,2) )

# load necessary packages
library( squash )
library( dendextend )

# "initializatin"
data("mtcars")
myDend <-  as.dendrogram(hclust(dist(mtcars))) 

# creating the numeric & color matrix used for
# (attempted) labels & colors bars, respectively
myStatus <- cbind(mtcars$vs,mtcars$am)
myColors <- matrix(c("mintcream","firebrick3")[1 + myStatus],ncol = 2)
myColors <- matrix(c("mintcream","firebrick3")[1 + cbind(mtcars$vs,mtcars$am)], …
Run Code Online (Sandbox Code Playgroud)

plot r dendrogram colorbar dendextend

4
推荐指数
1
解决办法
537
查看次数

如何在最佳 K 处排列(剪切)树状图

如何在树状图中画一条线,对应于给定标准的最佳 K

像这样:

在此处输入图片说明

让我们假设这是我的树状图,最好的 K 是 4。

data("mtcars")
myDend <-  as.dendrogram(hclust(dist(mtcars))) 
plot(myDend)
Run Code Online (Sandbox Code Playgroud)

我知道该abline函数能够在图形中绘制类似于上面显示的线条。但是,我不知道如何计算高度,因此该函数用作abline(h = myHeight)

plot r hierarchical-clustering dendrogram

4
推荐指数
1
解决办法
3061
查看次数