繁体   English   中英

如何相对于系统发育树上的树尖调整尖端标签的 position?

[英]How can I adjust the position of tip labels relative to tree tips on a phylogenetic tree?

我正在尝试使用 R 中的apephytools包在系统发育树上创建一个连续性状的R的图形以供发布。 我正在尝试生成的示例代码如下:

library("ape")
library("phytools")
orig_tree<-rtree(n=350)
plot(orig_tree)
values<-data.frame("residuals"=runif(350,min=-1,max=1),row.names=orig_tree$tip.label)
values<-setNames(values$residuals,rownames(values))
residualsignalfit<-fastAnc(orig_tree,values,vars=TRUE,CI=TRUE)
obj<-contMap(orig_tree,values,plot=FALSE)
plot(obj,type="fan",fsize=.1,lwd=0.5)

唯一的区别是分支的末端都是相同的长度,因为它们都是活的分类群,但这足以说明我遇到的问题。 我在这棵树中有大量的分类群,因此我必须使用fsize=参数将文本缩小到相当小,以使它们清晰易读。 但是,正如您从示例代码中看到的那样,这样做会导致每个物种名称的末端被系统发育树的轮廓所掩盖 我试过删除轮廓,但它使系统发育的热图很难阅读。 我一直找不到任何方法来减少轮廓的粗细,它似乎是自动生成的。

我还尝试将cex命令添加到plot(obj...) ,但它对生成的树根本没有影响。

我想弄清楚如何做的是如何 position 尖端标签,以使它们更清晰且不被树的轮廓覆盖。 我不能简单地使用dplyr mutate function 或类似的东西在每个终端前面添加一个空格,因为 position 分类单元名称的左侧并不总是一致的右边。 我尝试不将数据绘制为风扇,但这最终会创建一个具有大量死区的图形,因为我在树中有一些非常深的分裂(基本上将图形绘制为面向右侧的树结果一半的数字是死空间,因为我的分类群在中生代分歧,但只在 KT 边界之后形成)。

您可以放大树,而不是缩小文本。 您可以将 plot 导出为具有特定宽度和高度的图像。 将两者都设置为 20 应该使所有提示标签清晰可见。

就像是

setEPS()
postscript("output.eps", width = 20, height = 20)
plot(obj,type="fan",lwd=0.5)
dev.off()

这会将 plot 保存到output.eps ,而不是在默认查看器中显示它。 所以它不受屏幕尺寸的限制。 你仍然需要摆弄lwdfsize的最佳值,但根据我的经验,当你有一个大的 canvas 时,它会容易得多。

编辑:对不起, widthheight的单位是英寸而不是像素。 所以宁愿将其设置为 10 或 20。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM