【问题标题】:Increase space between leaves and labels in ggplot2 dendrogram增加ggplot2树状图中叶子和标签之间的空间
【发布时间】:2017-08-23 12:20:46
【问题描述】:

我需要使用ggplot2 绘制聚类树状图。要创建树状图对象,我使用 dendextend 包中的 as.ggdend() 函数。但是,叶子和标签之间的空间非常小(见下图)。知道如何增加它吗?

复制示例的代码粘贴在下面。

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)

【问题讨论】:

  • 根据dendextend包的documentation,没有改变叶子间距的实现。请参考 Tal Galili 的这个答案here。我认为您最好的解决方案可能是dend &lt;- df %&gt;% dist %&gt;% hclust %&gt;% as.dendrogram %&gt;% set("labels_cex", 1)%&gt;% # hang the leaves (at some height) hang.dendrogram(hang_height = .7)

标签: r ggplot2 dendrogram


【解决方案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)

【讨论】:

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