[英]Plotting a dendrogram in base R with only two leaves
我有一些(旧版)代码使用基础 R(4.1.1)从n
x n
距离矩阵绘制树状图。 这适用于n>=3
,但不适用于n=2
。
numElements <- 2
data <- matrix(1, nrow = numElements, ncol = numElements)
data[1,2] <- 0
data <- (data + t(data))/2
d3 <- as.dist(data)
clust3 <- hclust(d3)
plot(clust3, hang = -1)
对于n=2
我得到这个错误:
图形错误:::plotHclust(n1, merge, height, order(x$order), hang, : 无效的树状图输入
我想要一个有两片叶子的树状图,它会显示这两片叶子之间的高度。
不幸的是, graphics:::plotHclust
调用外部 C 代码,所以我不能直接修改它。 而且不幸的是,我试图在虚拟机上的预构建容器上运行它,所以我需要一个基本的 R 解决方案,而不需要额外的包(否则我只会使用ggdendro
)。 我可以捕捉到只有两个样本的情况并运行单独的绘图 function,这很好。
基本树状图 plot function 无法处理克高度的单调增加,如本答案中所述。 因此,您可以使用as.dendrogram
将其转换为树状图 object,如下所示:
numElements <- 2
data <- matrix(1, nrow = numElements, ncol = numElements)
data[1,2] <- 0
data <- (data + t(data))/2
d3 <- as.dist(data)
clust3 <- hclust(d3)
plot(as.dendrogram(clust3), hang = -1)
使用reprex v2.0.2创建于 2022-08-19
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.