Phylomoji
With ggtree (Yu et al. 2017), it is very easy to create phylomoji. Emoji is internally supported by ggtree.
Use emoji in taxa labels
library(ggtree)
tree_text <- "(((((cow, (whale, dolphin)), (pig2, boar)), camel), fish), seedling);"
x <- read.tree(text=tree_text)
ggtree(x, linetype="dashed", color='firebrick') +
xlim(NA, 7) + ylim(NA, 8.5) +
geom_tiplab(aes(color=label), parse='emoji', size=14, vjust=0.25) +
labs(title="phylomoji", caption="powered by ggtree + emojifont")
p <- ggtree(x, layout='circular') +
geom_tiplab2(aes(color=label), parse='emoji', size=12, vjust=0.25)
print(p)
open_tree(p, angle=200)
open_tree(p, angle=60) %>% rotate_tree(-75)
Labeling clades using emoji
set.seed(123)
tr <- rtree(30)
ggtree(tr) + xlim(NA, 5) +
geom_cladelabel(node=41, label="chicken", parse="emoji",
fontsize=12, align=TRUE, color="firebrick") +
geom_cladelabel(node=51, label="duck", parse="emoji",
fontsize=12, align=TRUE, color="steelblue") +
geom_cladelabel(node=32, label="family", parse="emoji",
fontsize=12, align=TRUE, color="darkkhaki")
Apple Color Emoji
Although R
’s graphical devices don’t support AppleColorEmoji
font, it’s still possible to use it. We can export the plot
to svg
file and render it in Safari
.
library(ggimage)
library(gridSVG)
p <- ggtree(x, size=2) + geom_tiplab(size=20, parse='emoji') +
xlim(NA, 7) + ylim(NA, 8.5) +
geom_phylopic(image="79ad5f09-cf21-4c89-8e7d-0c82a00ce728",
color="firebrick", alpha = .3, size=Inf)
p
ps = grid.export("emoji.svg", addClass=T)
Further reading
Please visit ggtree homepage, https://guangchuangyu.github.io/ggtree, to find out more.
References
Yu, Guangchuang, David Smith, Huachen Zhu, Yi Guan, and Tommy Tsan-Yuk Lam. 2017. “Ggtree: An R Package for Visualization and Annotation of Phylogenetic Trees with Their Covariates and Other Associated Data.” Methods in Ecology and Evolution 8 (1): 28–36. doi:10.1111/2041-210X.12628.