as.ggplot 没有为叶子标签留下足够的空间

问题描述 投票:0回答:1

我一直在使用 ggplot2 来自动生成报告,并一直使用 ggdendro 来生成随附的树状图。然而,由于 ggdendro 似乎不再得到积极支持,并且我遇到了这个错误,我正在尝试转向 denextend。但是,基本图形输出(已加载 dendextend)和 ggplot2 版本之间在叶标签方面存在不一致。 ggplot2 输出没有为叶标签保留足够的空间,而基本图和 ggdendro 版本却保留了足够的空间。

请参阅下文了解三种方法之间的差异。

手动指定为每个生成的图保留的空间量不是一种选择。

tmp <- structure(list(merge = structure(c(-2L, -17L, -4L, -8L, -9L, 
-18L, -6L, -1L, -13L, 3L, -22L, 2L, 8L, -5L, -21L, -11L, 12L, 
-14L, 16L, 11L, 15L, 19L, 21L, -3L, -20L, -12L, 1L, -10L, -19L, 
4L, -7L, -16L, 5L, -23L, 7L, 10L, -15L, -24L, 6L, 13L, 9L, 17L, 
14L, 18L, 20L, 22L), dim = c(23L, 2L)), height = c(45023.2309258232, 
51012.7856326235, 58268.2644327081, 60190.454758209, 61767.4324786129, 
66285.293896912, 73795.8493548248, 73915.5720738195, 90644.0966914007, 
96920.4596202474, 102068.443095797, 107134.968399678, 115773.032503256, 
117042.164244344, 121274.611506284, 127869.304201595, 131043.636743644, 
158158.916403724, 203042.0850021, 204028.358261787, 267728.385874565, 
289081.126533712, 575641.131737474), order = c(21L, 24L, 14L, 
13L, 16L, 11L, 18L, 19L, 17L, 20L, 6L, 8L, 2L, 3L, 1L, 7L, 4L, 
12L, 9L, 10L, 22L, 23L, 5L, 15L), labels = c("D10PBS_1", "D10PBS_2", 
"D10PBS_3", "D10PBS_4", "D10Myo_1", "D10Myo_2", "D10Myo_3", "D10Myo_4", 
"D15PBS_1", "D15PBS_2", "D15PBS_3", "D15PBS_4", "D15Myo_1", "D15Myo_2", 
"D15Myo_3", "D15Myo_4", "D21PBS_1", "D21PBS_2", "D21PBS_3", "D21PBS_4", 
"D21Myo_1", "D21Myo_2", "D21Myo_3", "D21Myo_4"), method = "complete", 
    call = hclust(d = dist(t(count.data[gene.masks$Genes, ]))), 
    dist.method = "euclidean"), class = "hclust")

plot(as.dendrogram(tmp))
dendextend::as.ggdend(as.dendrogram(tmp))
ggdendro::ggdendrogram(tmp)
r ggplot2 dendrogram dendextend
1个回答
0
投票

这似乎有效:

tmp %>% 
  as.dendrogram() %>% 
  as.ggdend() %>% 
  ggplot() + 
  ylim(-2*min(get_branches_heights(dend)), max(get_branches_heights(dend)))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.