问题标签 [dendextend]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
965 浏览

r - 难以比较树状图

我有一个包含 2 个不同(1 个外部运行,1 个自己完成)聚类解决方案的数据集。我想使用包中的tanglegramandentanglement命令来比较它们dendextend,但是我一直有关于标签的错误,我不知道为什么。为了说明,我用 mtcars 做了一个简单的例子:

这给出了这些错误:

我不明白为什么会发生这些错误,并且检查数据结构并没有给我答案!任何有用的启示将不胜感激!

编辑 注意下面@emilliman5 的回答:我知道我的树状图未解析-我没有使用层次聚类,因此我想比较未解析的树状图。更多-我从这个问题中采用了一些代码:如何手动创建树状图(或“hclust”)对象?(在 R 中)自己构建树状图 - 尽管尚未解决,但这些会产生一个缠结图。然而,这不是一个解决方案,因为它太难推广到不同的参数(我的树深度/分辨率会发生变化,并且尝试编写一个函数来对具有不同嵌套级别的树进行编码是一条通向疯狂的道路!)。

丑陋的缠结

它很丑,但它是我想要/需要的。

如果我查看树状图,试图弄清楚为什么会这样:

你注意到有一个向量。查看 hclust 派生的树状图,我们看到还有一个向量/原子:

但是,查看 data.tree 创建的树状图,我注意到没有向量/原子:

这个缺失的原子会导致问题吗?

0 投票
1 回答
916 浏览

r - dendextend:color_branches 不适用于某些 hclust 方法

我正在使用 R dendextend 包来绘制由 hclust{stats} 中的每个 hclust 方法生成的 hclust 树对象:“ward.D”、“ward.D2”、“single”、“complete”、“average”(= UPGMA), “mcquitty”(= WPGMA)、“中值”(= WPGMC)或“质心”(= UPGMC)。

当我使用方法 =“中值”或“质心”时,我注意到 color_branches 的颜色编码失败。

我用随机生成的矩阵对其进行了测试,并为“中值”和“质心”方法复制了错误,这有什么具体原因吗?

请参阅输出图的链接:图 1。hclust 方法 (a) ward.D2, (b) 中位数, (c) 质心

我正在使用dendextend_1.4.0。会话信息如下:

谢谢。

0 投票
0 回答
968 浏览

r - 绘制带有类标签的切割树状图

在以下示例中:

我想添加类的标签。我可以:

除了标签奇怪地移动之外,cut() 中的分支编号是否总是对应​​于 hcut4 中的类?在这种情况下,他们会:

但这是一般情况吗?

使用 dendextend (标签和颜色叶树状图在 r)的例子很好

不幸的是,我总是有很多个人,所以绘制个人对我来说很少是一个有用的选择。我可以:

我可以添加颜色

但以下不起作用:

有没有更好的方法来根据类绘制切割的树状图标记分支(与 cutree() 的结果一致)?

这是我需要的一个示例(在图片上编辑了类标签),但请注意,问题是我不知道标签是否实际上位于正确的分支: 在此处输入图像描述

0 投票
1 回答
1726 浏览

r - 如何根据标签名称而不是分组使用 R 为树状图标签着色

我正在尝试根据标签名称的一部分为树状图的标签着色。标签名称源自文件夹中的文件名。这些文件是 .txt 文件,并以这种方式命名:167_001.txt 前三个数字表示文本的特定作者,最后三个数字区分该作者的单独文章。我想用文件的全名标记分支,但只根据前 3 个数字为标签着色,这样我就可以看到特定作者的哪些作品可能与其他作者有更多共同点,从而了解谁影响了谁。这些都是中世纪作家,所以你不会帮我找到任何可能抄袭某些东西的现代作家。因此,如果一个文件以 080 开头,我希望所有 080 文件都是一种颜色,无论文件名的最后部分是什么,也不管它在哪里分组,但我仍然希望文件的结尾部分在标签名称。这是我到目前为止所拥有的:

如您所见,我正在使用 dendextend 包。如果有人有更好的软件包或可以同时完成我需要的软件包,那就太好了。我目前所拥有的会将文件放在相同的颜色系列中,因为它们足够相似,dendextend 提供的“color_unique_labels”功能至少可以将它们的颜色设置为相同颜色的阴影,但它不会使它们的颜色完全相同我希望同一个作者总是相同的颜色,然后更容易看出哪些作品与不同作者有相似之处。见下文。有几百个不同的作者,所以我不想手动为每个人分配一个单独的颜色(A =“红色”,B =“蓝色”,C =“兰花”等),但更喜欢像“color_unique_labels”一样工作 并根据文件名中的前 3 个数字自动选择和分配颜色。我的例子是使用 USArrests 包,我可能想看看如何用第一个字母为州名着色,所以所有“A”州和“C”州等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!所以所有的“A”状态和“C”状态等等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!所以所有的“A”状态和“C”状态等等都是相同的颜色。所以阿拉巴马州、阿拉斯加州、亚利桑那州和阿肯色州都应该是同一种颜色,而加利福尼亚州、科罗拉多州和康涅狄格州也应该是同一种颜色。同样,我更愿意找到一种方法使其更加自动化,因为我的真实数据集有几百种可能性,而不仅仅是 50 种,但是,如果这是唯一的选择,我不反对。提前致谢!

使用“color_unique_labels”函数扩展树状图

0 投票
1 回答
802 浏览

r - 获取集群层次结构和嵌套集群分配

我目前正在研究文档主题中的层次结构。作为第一步,我找到了我的文档的向量表示,之后我使用层次聚类来确定文档的主题中是否存在主题。我只想考虑至少包含 2% 原始数据的(嵌套)集群。为了实现这一点,我正在使用 R。

现在,我正在努力从聚类结果中有效地提取聚类层次结构。集群是通过“fastcluster”包完成的,它提供了与原始“hclust”函数相似的结果。

我的最终输出应该是这样的;会有两张桌子

集群分配:

集群层次结构:

如您所见,观察 3,4 和 5 在集群分配表中多次出现,其中一个集群是其父集群的子集群。这可以在层次结构表中看到。

我目前的方法是使用“Dendextend”包中的 cutree.dendogram 函数来查找 k 值网格的集群分配,然后从输出中推断出集群层次结构和分配。然而,这种方法非常幼稚,并且对于大量的观察和集群来说变得非常缓慢。

关于如何有效解决这个问题的建议,最好是使用一些现成的包,将不胜感激。

编辑:考虑以下示例,对应于示例输出数据:

如果我们在高度 6 处切割树,我们将获得 2 个簇,在输出中命名为 A 和 B。但是,如果我们在高度为 4 处切割树,我们将在输出中有 3 个簇,分别命名为 A、C 和 D。例如,现在 docID 为 3 的观测值在集群 B 和集群 C 中(取决于我们切割树的高度),这对应于样本输出集群分配中的两个条目。集群 B 分为两个集群 C 和 D,这可以在集群 Hierachy 输出中看到。

现在我的目标是获取集群分配和层次结构的完整列表,向下移动树状图。(最好在(子)集群中的观察数量少于一定数量的观察时停止)

直到现在我还没有想出一个合理有效的方法来做到这一点,希望任何人都可以给我一个想法。

0 投票
1 回答
424 浏览

r - R中的树状图:如何正确悬挂树枝(在标签上色后)?

我已经完成了关于这个主题的其他问题,并设法“部分”得到了我需要的东西。我希望对我的 dendrogram 的叶子进行颜色编码。每个叶子代表一个市场,我的 DF 中有另一列通过颜色代码“红色”、“黄色”或“绿色”(已编码为数字:“1”、“2” , "3")。每个市场都有一个颜色代码。我希望标签本身就是市场,但标签的颜色要基于颜色代码。

我的问题是,当我绘制它时,标签确实被编码,但树真的被拉长了。太长了,标签也被剪掉了。我该怎么办?

细长树状图

0 投票
1 回答
461 浏览

r - r dendrogram - groupLabels 与真实标签不匹配(dendextend 包)

让我们使用FactoMineR包对iris 数据集进行快速的 3 类分类:

我们看到集群 1 中有 50 个观测值,集群 2 中有 62 个观测值,集群 3 中有 38 个观测值。

现在,我们想在树状图中可视化这 3 个集群,使用包dendextend可以制作漂亮的集群:

在此处输入图像描述

问题是树状图上的标签不符合分类的真实标签。簇 2 应该是最大的一个(根据数据有 62 个观测值),但在树状图上,我们清楚地看到它是最小的一个。

我尝试了不同的想法,但现在没有任何效果,所以如果你知道输入哪个输入groupLabels = 来匹配真实标签,那就太好了。

0 投票
1 回答
487 浏览

r - 使用“dendextend”在树状图中围绕指定标签绘制矩形

我目前正在构建一个树状图,我正在使用“dendextend”来调整它的外观。我已经能够做我想做的一切(标记叶子和突出显示我选择的集群的分支),除了在预定义的集群周围绘制矩形。

我的数据(可以来自此文件:Barra_IBS_example.matrix)与“pvclust”聚集在一起,因此“pvrect”将矩形绘制在正确的位置,但它会切割标签(见下图),所以我想重现它与“rect.dendrogram”,但是,我不知道如何告诉函数使用来自“pvclust”的聚类数据。

带 pvrect 的树状图

这是我正在使用的代码:

非常感谢,伊多

0 投票
3 回答
3946 浏览

r - 具有层次聚类的堆积条形图(树状图)

我试图得到这样的东西,但不幸的是,我找不到任何可以让我用树状图绘制堆积条形图的包,如下所示:

树状图

有谁知道该怎么做?

0 投票
1 回答
59 浏览

r - 随机化中的关联行为

我正在使用 Rdendextend包,尝试将hclusts对象与cop_cophenetic.

我有两个从聚类中产生的对象:clustsclusts1,我想比较它们之间的共生相关性。我有以下几种选择:

我也可以尝试使用 base R 更直接的方法

首先,我不明白调用对象、调用树状图或 phylos之间cor_cophenetic的区别。这里有正确的方法吗?hclustscor_cophenetic

接下来,我尝试对clusts1.

虽然 dendros 上的 cophenetic 在随机化上有所不同(我得到了一个分布)。保持不变(0.689649)的直接共hclusts质 - 并且不会改变。为什么?