rdendrogramhclustdendextend

Cluster labels are cut off on horizontal hclust dendrogram


I used hclust and as.dendogram to make a dendrogram, but when I rotate it to a horizontal orientation, the model names are cut off. How can I make sure that the plot shows the entire model names?

my cluster dendogram


Solution

  • You need to play with the margin. Here is an example (it also uses dendextend to give extra control over the color and shape of the dendrogram)

    library(dendextend)
    library(dplyr)
    small_mtcars <- head(mtcars) %>% select(mpg, cyl, disp)
    small_mtcars
    
    d1 = small_mtcars %>% dist() %>% hclust(method = "average") %>% as.dendrogram() 
    library(colorspace)
    some_colors <- rainbow_hcl(nrow(small_mtcars))
    d1_col <- some_colors[order.dendrogram(d1)]
    # some colors for fun
    d1 <- d1     %>% 
            set("labels_cex",1.2) %>% 
            set("labels_colors", value= d1_col) %>% 
            set("leaves_pch", 19) %>%
            set("leaves_cex", 2) %>%
            set("leaves_col", value= d1_col) 
    
    par(mfrow = c(1,2))
    
    par(mar = c(2,2,2,2))
    d1 %>% 
    
        plot(main="d1 (bad margins)", horiz = TRUE)
    
    par(mar = c(2,2,2,10))
    d1 %>% 
        set("labels_cex",1.2) %>% 
        plot(main="d1 (good margins)", horiz = TRUE)
    

    enter image description here