26

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

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

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

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

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

谢谢。

4

2 回答 2

48

可以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")

在此处输入图像描述

于 2011-09-13T15:31:46.727 回答
30

另一个答案中描述的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()
于 2011-09-13T16:53:38.497 回答