【问题标题】:Reorder and colour dendogram based on labels基于标签重新排序和颜色树状图
【发布时间】:2018-03-21 17:47:39
【问题描述】:

我正在尝试控制树状图的顺序和颜色。显然,树状图的重点是按相似性排序,但在分支中,我想设置一个有意义的顺序(字母数字)。

library(vegan)
library(stats) 

x <-data.frame(data = c(1:10)) 
y = data.frame(type = c("A","B","C","A","C","D","A","B","C","B"), site_name = c("A1","B1","C1","A2","C2","D1","A3","B2","C3","B3"))  
row.names(x) = y$site_name 
dis = vegdist(x) 
hc <- hclust(dis) 
dd <- as.dendrogram(hc) 
plot(dd)

我的数据标签是文本,但它们确实在变量中列出了固定顺序

site_order = c("A1","A2","A3","B1","B2","B3","C1","C2","C3","D1")

1) 我想找到一个解决方案,根据分支内的site_order 对树状图进行排序。

例如A1,B1,A2,C1,C2,D2,A3,B2,B3,C3

我还想使用 site_type 为标签着色和形状 例如(A=红色圆圈,B=蓝色方块,C=绿色三角形,D=黄色十字)

这可能吗?

【问题讨论】:

    标签: r dendrogram hclust dendextend


    【解决方案1】:

    最好使用来自dendextend 的rotate 函数来完成这项工作。

    library(vegan)
    library(stats) 
    
    x <-data.frame(data = c(1:10)) 
    y = data.frame(type = c("A","B","C","A","C","D","A","B","C","B"), site_name = c("A1","B1","C1","A2","C2","D1","A3","B2","C3","B3"))  
    row.names(x) = y$site_name 
    dis = vegdist(x) 
    hc <- hclust(dis) 
    dd <- as.dendrogram(hc) 
    
    par(mfrow = c(1,2))
    plot(dd, main = "orig")
    
    library(dendextend)
    dd2 <- rotate(dd, sort(labels(dd)) )
    plot(dd2, main = "as sorted as possible \n(under the constraints)")
    

    输出:

    您可以从the online vignettes 了解更多关于dendextend 包的信息。

    【讨论】:

      猜你喜欢
      • 2013-09-19
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多