2017-10-10 22 views
0

맹장 류의 순서와 색상을 제어하려고합니다. 분명히 dendorgram의 요점은 유사성에 따라 정렬하는 것이지만, 분기 내에서 나는 이해할 수있는 순서 (알파벳 - 숫자)를 만들고 싶습니다. enter image description here레이블에 기반한 재주문 및 색상 덴도 그램

내 데이터 레이블

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) 내가 따라 dendogram을 정렬 해결책을 찾기 위해 싶습니다 분기 내의 site_order.

A1 I 또한 색상 및 site_type 예 (A = 적색 원을 사용하여 라벨을 형성하려면, B1, A2, C1, C2, D2, A3, B2, B3, C3

, B는 = 파란색 사각형, C = 녹색 삼각형, D = 노란색 십자가)

이것이 가능합니까?

답변

0

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)") 

출력 :

enter image description here

당신은 the online vignettes에서 dendextend 패키지에 대한 자세한 내용을 배울 수 있습니다.