我在R中使用具有树状图绘制功能的猿(分析系统发育和进化)包。我使用以下命令以Newick格式读取数据,并使用绘图函数绘制树形图:
library("ape")
gcPhylo <-read.tree(file = "gc.tree")
plot(gcPhylo, show.node.label = TRUE)
由于数据集非常大,因此无法在树的较低层中看到任何细节。我只看到黑色区域,但没有细节。我只能从顶部看到几个级别,然后没有细节。
我想知道绘图功能是否有任何缩放功能。我尝试使用xLim和yLim来限制区域,但是,它们只是限制了区域,并且不进行缩放以使细节可见。缩放或在不缩放的情况下使细节可见将解决我的问题。
我也很高兴知道任何其他包,功能或工具可以帮助我克服这个问题。
感谢。
答案 0 :(得分:47)
可以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")
答案 1 :(得分: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()