R中的树形图:如何正确悬挂树枝(着色标签后)?

时间:2017-05-16 17:42:43

标签: r colors dendrogram dendextend

我已经解决了有关此主题的其他问题,并设法“部分”得到我需要的东西。我希望我的树形图的叶子是彩色编码的。每个假期代表一个市场,我在我的DF中有另一个专栏,通过颜色代码“红色”,“黄色”或“绿色”(它们被编码为数字:“1”,“2”)告诉它是什么类型的市场,“3”)。每个市场都有颜色代码。我希望标签本身就是市场,但标签的颜色要基于颜色代码。

Labels      <- DF$Markets
color_codes <- DF$Type

Data_scale  # obtained after removing the columns of 'Markets' and 'Type' 
            # from DF and scaling it.

row.names(Data_scale) <- Labels

hc   <- hclust(dist(Data_scale)))
dend <- as.dendrogram(hc)

colors_to_use <- color_codes

colors_to_use <- colors_to_use[order.dendrogram(dend)]

labels_colors(dend) <- colors_to_use
plot(dend, cex = 0.8)

我的问题是,当我绘制它时,标签会被编码,但树真的很长。它太长了,标签也被切断了。我该怎么办?

Elongated Dendrogram

1 个答案:

答案 0 :(得分:2)

我需要“悬挂”标签,而不是将它们全部绘制在一个高度上。以下是诀窍:

dend %>% set("leaves_pch", 19) %>% set("leaves_cex", 2) %>% 
set("leaves_col", 2) %>%      # adjust the leaves
hang.dendrogram(dend, hang_height = 0.01) %>% # hang the leaves
plot(main = "Hanging a tree")

https://cran.r-project.org/web/packages/dendextend/vignettes/introduction.html