以下代码将绘制一个系统发育树,其中斜体标签以斜体和下划线替换为空格。
library(ape)
tr <- rtree(5, tip.label=c("a_b_x1", "b_c_2", "c_d_3y", "d_e_4", "e_f_5"))
plot(tr)
如何在系统发育的尖端标签中将常规文本与斜体文本结合起来?在最后一个下划线显示为常规文本后,我对斜体字母和字母数字段感兴趣。
我尝试将expression
与tiplabels
一起使用,但由于索引的解释而无效。同时格式化sub
以选择expression
中的两个部分失败。
tip <- unlist(strsplit("a_b_x1", "_"))
tiplabels(expression(italic(paste(tip[1:length(tip)-1], collapse = " ")) * tip[length(tip)]),
tip = which(tr$tip.label == "a_b_x1"), frame = "n", bg = "white")
答案 0 :(得分:1)
我们可以使用bquote
构建表达式:
library(ape)
set.seed(1)
tr <- rtree(5, tip.label=c("a_b_x1", "b_c_2", "c_d_3y", "d_e_4", "e_f_5"))
plot(tr, show.tip.label = F)
for(i in seq_along(tr$tip.label)){
tip <- unlist(strsplit(tr$tip.label[i], "_"))
tiplabels(
bquote(italic(.(paste(tip[-length(tip)], collapse = ' '))) ~ .(tip[length(tip)])),
tip = i, adj = c(0, 0.5), frame = "n", bg = "white"
)
}