当你说“颜色分支”时,我假设你的意思是给边缘着色。这似乎可行,但我必须考虑有更好的方法。
使用内置的mtcars
数据集在这里,因为您没有提供数据。
plot.fan <- function(hc, nclus=3) {
palette <- c('red','blue','green','orange','black')[1:nclus]
clus <-cutree(hc,nclus)
X <- as.phylo(hc)
edge.clus <- sapply(1:nclus,function(i)max(which(X$edge[,2] %in% which(clus==i))))
order <- order(edge.clus)
edge.clus <- c(min(edge.clus),diff(sort(edge.clus)))
edge.clus <- rep(order,edge.clus)
plot(X,type='fan',
tip.color=palette[clus],edge.color=palette[edge.clus],
label.offset=0.2,no.margin=TRUE, cex=0.70)
}
fit <- hclust(dist(mtcars[,c("mpg","hp","wt","disp")]))
plot.fan(fit,3); plot.fan(fit,5)
关于“标记节点”,如果您的意思是标记提示,那么看起来您已经这样做了。不幸的是,如果你想要不同的标签,不像plot.hclust(...)
the labels=...
论点被驳回。你可以尝试一下tiplabels(....)
功能,但似乎不太适合type="fan"
。标签来自于行名称Data
,所以我认为最好的选择是在聚类之前更改行名称。
如果您实际上的意思是标记节点(边缘之间的连接点,请查看nodelabels(...)
。我没有提供有效的示例,因为我无法想象您会在那里贴上什么标签。