gpt4 book ai didi

r - 根据 R 中数据框的列数为树状图的末端分支(或叶子)着色

转载 作者:行者123 更新时间:2023-12-01 23:43:55 24 4
gpt4 key购买 nike

来自数据帧 data.main ,我能够生成一个 hclust树状图,

aa1<- c(2,4,6,8)
bb1<- c(1,3,7,11)
aa2<-c(3,6,9,12)
bb2<-c(3,5,7,9)
data.main<- data.frame(aa1,bb1,aa2,bb2)
d1<-dist(t(data.main))
hcl1<- hclust(d1)
plot(hcl1)

此外,我知道有一些方法可以使用树的截断来为 Twig 或树叶着色。但是,是否可以根据部分列名或列号为它们着色(例如,我希望对应于 aa1aa2 的分支为红色,而 bb1bb2 为蓝色)?

我查过R包 dendextend但我仍然无法找到一种直接/简单的方法来获得所需的结果。

dendrogram with <code>aa2</code> and <code>bb2</code> clustered most closely. Then <code>bb1</code> is next closest, followed by <code>aa1</code>. The labels and branches are colored based on the label. Those starting with "aa" are red and those starting with "bb" are blue.

最佳答案

更改树状图的颜色比更改 hclust 对象更容易,但转换起来非常简单。你可以做

drg1 <- dendrapply(as.dendrogram(hcl1, hang=.1), function(n){
if(is.leaf(n)){
labelCol <- c(a="red", b="blue")[substr(attr(n,"label"),1,1)];
attr(n, "nodePar") <- list(pch = NA, lab.col = labelCol);
attr(n, "edgePar") <- list(col = labelCol); # to color branch as well
}
n;
});
plot(drg1)

这将绘制

enter image description here

关于r - 根据 R 中数据框的列数为树状图的末端分支(或叶子)着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com