2017-08-23 93 views
3

我需要使用ggplot2繪製聚類樹形圖。要創建樹狀圖對象,我使用dendextend包中的as.ggdend()函數。但是,葉子和標籤之間的空間非常小(請參見下圖)。任何想法如何增加它?在ggplot2樹形圖中增加葉子和標籤之間的空間

enter image description here

再現例子的代碼如下粘貼。

library(ggplot2) 
library(dendextend) 

## Sample 20 instances of iris dataset 
data(iris) 
df <- iris[sample(150, 20), -5] 
labs <- paste("Longname_", 1:20, sep = "") 
rownames(df) <- labs 

## Create dendrogram object 
dend <- df %>% dist %>% 
    hclust %>% as.dendrogram %>% 
    set("labels_cex", 1) 
ggd1 <- as.ggdend(dend) 

## Plot dendrogram 
ggplot(ggd1, horiz = TRUE) 
+2

作爲每[文檔】(https://cran.r-project.org/web/packages/dendextend/vignettes/introduction.html)dendextend'包的'那裏,沒有實現改變葉子之間的空間。 Tal Galili參考這個答案[這裏](https://stackoverflow.com/questions/26965390/larger-font-and-spacing-between-leaves-in-r-dendrogram)。我認爲你的最佳解決方案可能是'dend <- df %>%dist%>% hclust%>%as.dendrogram%>% set(「labels_cex」,1)%>% #掛起樹葉(在某個高度) hang.dendrogram(hang_height = .7)' – Ashish

回答

1

在我看來,處理您的情節的寬度和高度可以是一個簡單而有價值的解決方案,爲您的問題。

library(ggplot2) 
library(dendextend) 
data(iris) 
df <- iris[sample(150, 20), -5] 

## Add blanks before "Longname_" 
labs <- paste(" Longname_", 1:20, sep = "") 
rownames(df) <- labs 

dend <- df %>% dist %>% 
    hclust %>% as.dendrogram %>% 
    set("labels_cex", 1) 
ggd1 <- as.ggdend(dend) 

## Resize width and height plotting area 
x11(width=10, height=5) 
ggplot(ggd1, horiz = TRUE) 

enter image description here

相關問題