问题标签 [hclust]
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.
r - 如何在 R 树状图中正确着色边缘或绘制矩形?
我使用 R和函数生成了这个树状图。hclust()
as.dendrogram()
plot.dendrogram()
我使用这个dendrapply()
函数和一个局部函数来给树叶上色,效果很好。
我有一个统计测试的结果,表明一组节点(例如树右下角的“ _+v\_stat5a\_01_
”和“ ”簇)是否重要或重要。_+v\_stat5b\_01_
我还有一个可以使用的本地函数,它可以dendrapply()
在我的树状图中找到包含重要叶子的确切节点。
我想(按照示例):
- 为连接“
_+v\_stat5a\_01_
”和“_+v\_stat5b\_01_
”的边缘着色;或者, - 在“ ”和“ ”
rect()
周围画一个_+v\_stat5a\_01_
_+v\_stat5b\_01_
我有以下本地函数(“nodes-in-leafList-match-nodes-in-clusterList”条件的细节并不重要,但它突出了重要的节点):
在此if
块中,我尝试调用dendrapply(n, markEdges)
,但这不起作用:
_+v\_stat5a\_01_
在我的理想示例中,连接“ ”和“ ”的边缘_+v\_stat5b\_01_
将是红色的虚线。
我也试过rect.hclust()
在这个if
块中使用:
但结果不适用于水平树状图(即带有水平标签的树状图)。这是一个示例(请注意右下角的红色条纹)。生成的东西的尺寸不正确rect.hclust()
,我不知道它是如何工作的,以便能够编写我自己的版本。
我很感激任何关于获得edgePar
或rect.hclust()
正常工作的建议,或者能够编写我自己的rect.hclust()
等价物。
更新
自从问了这个问题后,我getAnywhere(rect.hclust())
就得到了计算参数和绘制rect
对象的功能代码。我编写了这个函数的自定义版本来处理水平和垂直叶子,并用dendrapply()
.
但是,有某种剪裁效果会删除部分rect
. 对于水平叶子(绘制在树右侧的叶子),最右边的边缘rect
要么消失,要么比 . 的其他三个边的边框宽度更薄rect
。对于垂直叶子(在树底部绘制的叶子),最底部的边缘会rect
遇到相同的显示问题。
作为标记重要簇的一种方法,我所做的是减小宽度,rect
以便在簇边缘的尖端和(水平)叶子标签之间呈现垂直的红色条纹。
这消除了裁剪问题,但引入了另一个问题,即簇边缘尖端和叶子标签之间的空间只有六个左右像素宽,我对此没有太多控制权。这限制了垂直条纹的宽度。
更糟糕的问题是,x
标记垂直条纹在两个元素之间的位置的坐标将根据较大树的宽度(par["usr"]
)而变化,而这又取决于树层次结构的最终结构。
我写了一个“更正”,或者更确切地说,一个 hack 来调整这个x
值和rect
水平树的宽度。它并不总是始终如一地工作,但对于我正在制作的树木,它似乎不会太靠近(或重叠)边缘和标签。
最终,一个更好的解决办法是找出如何绘制,rect
这样就没有剪裁了。或者一种一致的方法来计算x
任何给定树的树边缘和标签之间的特定位置,以便正确地居中和调整条带的大小。
我也会对用颜色或线条样式注释边缘的方法非常感兴趣。
r - 来自多个 hclust 对象的共识树或“引导比例”
我有一个 hclust 对象列表,这些对象是由一个变量的细微变化(用于计算距离矩阵)产生的
- 现在我想从这个列表中制作一个共识树。
是否有通用软件包可以做到这一点?我正在通过 maanova 的一些代码破解我的方式,它似乎可以工作 - 但它很丑陋并且需要大量破解,因为我没有进行“正常”引导(它是化学数据)。
/Palle Villesen,丹麦
r - hclust 函数的聚类列表
使用plot(hclust(dist(x)))
方法,我能够绘制一个集群树图。有用。然而,我想获得所有集群的列表,而不是树形图,因为我有大量数据(如 150K 节点)并且情节变得混乱。
换句话说,让我们说如果a b c
是一个集群,如果d e f g
是一个集群,那么我想得到这样的东西:
请注意,这并不是我想要的“输出”。这只是一个例子。我只是希望能够获得集群列表而不是树状图它可以是向量、矩阵或只是显示元素所属组的简单数字。
这怎么可能?
r - 在 heatmap.2 中设置距离矩阵和聚类方法
heatmap.2 默认使用 dist 计算距离矩阵,使用 hclust 进行聚类。现在有谁可以设置 dist 使用欧几里得方法和 hclust 使用质心方法?我在下面提供了一个可编译的代码示例。我试过:distfun = dist(method = "euclidean"),但这不起作用。有任何想法吗?
r - 从集群(叶子)中检索成员
一旦你使用 , 建立集群hclust
,然后cutree
指定下集群;你如何检索形成不同集群的成员?假设您创建了一个简单的层次集群,什么命令可以检索在集群组的叶子中“单独”计算的元素?
我试过了,table()
但没有办法...
r - 将树状图导出为 R 中的表
我想将 hclust-dendrogram 从 R 导出到数据表中,以便随后将其导入另一个(“自制”)软件。str(unclass(fit))
提供树状图的文本概述,但我正在寻找的实际上是一个数字表。我看过 Bioconductor ctc 包,但它产生的输出看起来有些神秘。我想要类似于这张表的东西:http
://stn.spotfire.com/spotfire_client_help/heat/heat_importing_exporting_dendrograms.htm 有没有办法从 R 中的 hclust 对象中得到它?
r - 从 R 中的 hclust 中提取文本中的树结构
在需求预测项目的范围内,我想确定对彼此相似的时间序列进行分组的最佳方法,以便我可以应用自上而下的预测算法。目前,我的关键问题是确定什么是适当的组以及这些组的适当层次结构是什么。在做了一些阅读之后,我相信动态时间扭曲可能会有所帮助。为了对此进行测试,我创建了一个小测试用例,但我面临一个问题,那就是我如何提取层次结构,例如文本树或类似的东西。我希望你们中的一个人能够进一步帮助我。
我创建了以下案例来展示我的目标。
不知何故,我想以文本形式获取集群的名称和成员,以便我可以继续使用它。有人有想法吗?
谢谢!
r - 在 r 中为带有彩色叶子的树状图创建图例
我在树状图中为叶子着色如下
我想:1)添加一个解释颜色的图例(即橙色 = 北)2)使叶子标签更大更粗(cex.lab 似乎没有做这项工作)3)创建一个具有鲜明对比的调色板当树状图中有许多叶子和颜色时,颜色(彩虹,heat.colors 等似乎都融合在一起了。
任何意见是极大的赞赏 !
r - 在排序上叠加聚类结果
我需要将通过将树状图切割成给定的相似性水平而生成的集群覆盖到排序结果(NMDS)上。我一直在浏览 ade4 和 vegan,但没有找到任何明显的解决方案。
我目前正在使用 Primer-e(见下面的屏幕截图),但我发现图形有点有限。非常感谢正确方向的任何一点。
r - 从r中的树状图中删除x轴标签
我使用 xlab="" 来抑制 x-label,但仍然在我的树状图中得到一个 'sub-x-label'。如何删除它并删除树状图下的任何额外空间?