【问题标题】:How to plot dendrograms with large datasets?如何使用大型数据集绘制树状图?
【发布时间】:2011-09-13 15:00:41
【问题描述】:

我在 R 中使用具有树状图绘制功能的 ape(系统发育和进化分析)包。我使用以下命令读取 Newick 格式的数据,并使用 plot 函数绘制树状图:

library("ape")
gcPhylo <-read.tree(file = "gc.tree")
plot(gcPhylo, show.node.label = TRUE)

由于数据集非常大,在树的较低级别中无法看到任何细节。我只能看到黑色区域,但没有细节。我只能从顶部看到几个级别,然后看不到细节。

我想知道绘图功能是否有任何缩放功能。我尝试使用 xLim 和 yLim 来限制区域,但是,它们只是限制区域,并且不会缩放以使细节可见。缩放,或者在不缩放的情况下使细节可见将解决我的问题。

我也很高兴知道可以帮助我克服问题的任何其他包、功能或工具。

谢谢。

【问题讨论】:

  • 在r-sig-phylo@r-project.org 邮件列表中,您可能会在这个问题上取得更大的成功,这是使用 R 的系统发育专家常去的地方...您看过?zoom 中的ape 包... ??
  • 感谢您对邮件列表的建议。如果我无法用这里已经给出的答案解决问题,我会提出这个问题。我在ape中尝试了缩放功能,但仍然不清楚较低的节点。我也会尝试在搜索放大猿时遇到的 subtreeplot()。

标签: r plot zooming dendrogram


【解决方案1】:

可以cut指定高度的树状图并绘制元素:

首先使用内置数据集USArrests 创建一个聚类。然后转换为dendrogram:

hc <- hclust(dist(USArrests))
hcd <- as.dendrogram(hc)

接下来,使用cut.dendrogram 在指定高度切割,在本例中为h=75。这会为剪切的upper 位生成一个树状图列表,以及一个树状图列表,每个 branch 对应剪切下方的一个:

par(mfrow=c(3,1))

plot(hcd, main="Main")
plot(cut(hcd, h=75)$upper, 
     main="Upper tree of cut at h=75")
plot(cut(hcd, h=75)$lower[[2]], 
     main="Second branch of lower tree with cut at h=75")

【讨论】:

  • 是的,太棒了!那将解决我的问题。但是,是否可以将系统发育树转换为树状图?我所拥有的只是一棵树,它是我的 java 程序的输出。那么是否可以从我的输出中定义一个树状图而不是使用 hclust 对象?抱歉,这是我与 R 的第一次互动。
  • 这当然是可能的:您只需在read.tree(这是phylo 类的R 对象)的输出上调用as.hclust 即可将其转换为@987654334 类的对象@.
  • 是否可以在特定数量的簇而不是特定高度切割树状图?我不知道如何绘制树状图 k = 10 个簇。
  • @skurp 是的,你可以! cut &lt;- cutree(hc, k = 10); plot(hc, hang = -1); rect.hclust(hc, k = 10)
【解决方案2】:

另一个答案中描述的cut函数是一个很好的解决方案;如果您想在一页上维护整个树以进行一些交互式调查,您还可以在 PDF 上绘制到一个大页面。

生成的 PDF 是矢量化的,因此您可以使用自己喜欢的 PDF 查看器近距离放大而不会损失分辨率。

这是一个如何将绘图输出定向到 PDF 的示例:

# Open a PDF for plotting; units are inches by default
pdf("/path/to/a/pdf/file.pdf", width=40, height=15)

# Do some plotting
plot(gcPhylo)

# Close the PDF file's associated graphics device (necessary to finalize the output)
dev.off()

【讨论】:

    猜你喜欢
    • 2012-04-29
    • 1970-01-01
    • 2015-05-21
    • 2018-12-14
    • 2016-04-22
    • 1970-01-01
    • 2014-05-24
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多