首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >APE/Phangorn:如何包装小费标签?

APE/Phangorn:如何包装小费标签?
EN

Stack Overflow用户
提问于 2019-05-06 22:04:42
回答 1查看 151关注 0票数 0

我正在使用ape::plot.phylo (通过phangorn::plotBS调用?)绘制一些系统发育树。问题是提示标签太长了,我想用某种方式把它们包起来。我似乎在plotplot.phylo/plotBS中找不到任何选项来解决这个问题。

你知道怎样才能让tip.labels进行文本包装吗?

样本提示标签:"QER Echinodermata Asteroidea Asteroidea Asteriidae Asterias Asterias.rubens UNID1“

EN

回答 1

Stack Overflow用户

发布于 2019-05-08 08:49:50

实际上,最简单的解决方案是更改phylo对象中的tip.label元素。

代码语言:javascript
复制
## Making a tree with three tips of 20 characters each
tree <- rcoal(3, tip.label = replicate(3, paste(sample(letters, 20), collapse = "")))
## The tree tip labels
tree$tip.label
# [1] "thsdmrigufpykvlawqbz" "dlicefyjonmqugbptxzr" "adioznspgbkjqryelfum"

然后,可以使用换行符(\n)对每个第n个字符进行换行,如下所示:

代码语言:javascript
复制
## Declaring the pattern and text to replace at a specific position
position <- 10
pattern <- paste0('^([a-z]{', position-1, '})([a-z]+)$')
text <- paste0('\\1', "\n", '\\2')
wrap_tips <- gsub(pattern, text, tree$tip.label)
wrap_tips
# [1] "thsdmrigu\nfpykvlawqbz" "dlicefyjo\nnmqugbptxzr" "adioznspg\nbkjqryelfum"

当然,您也可以将特定字符(如_.)替换为更简单的\n (如gsub("_", "\\n", tree$tip.label))。

然后,您可以创建树的副本,并为其提供包装的提示标签:

代码语言:javascript
复制
## Duplicating the tree
tree_to_plot <- tree
## Changing the labels
tree_to_plot$tip.label <- wrap_tips
## Plotting the wrapped labels
plot(tree_to_plot)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56006825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档