话说有一只蛙,它旅游去了广东,游戏结束。

这篇文章,只想跟大家讲一讲ggtree,你值得拥有的强大的进化树可视化软件,高颜值的图,就在于指尖几行代码中。

最近养蛙很流行,就以蛙为例,读树用read.tree,然后一个ggtree的指令,树就画出来了。而你见证神奇的时刻就在于你不断+geom_xxx加图层,这里我用了geom_tiplab来加taxa label,而这个可不仅仅是名字哦,用emoji也可以,这里我用的竟然是图片,你没看错,也可以。只要指定geom="image"就OK,那个本来要打的文本,就会被当成是文件名,然后读图片画图片,一切尽在我的ggimage包。

这个包,曾经送过你帽子,曾经玩过Pokémon:

然后我又加了一个geom_tiplab的图层,这次正经地打名字了。最后又用蛙儿子,画在右上角,用了ggimage包的geom_image.

require(ggtree)

nwk <- "((((bufonidae, dendrobatidae), ceratophryidae), (centrolenidae, leptodactylidae)), hylidae);"

x = read.tree(text = nwk)
p <- ggtree(x) + xlim(NA, 7) + ylim(NA, 6.2) +
    geom_tiplab(aes(image=paste0(label, '.jpg')), geom="image", offset=2, align=2, size=.2)  + 
    geom_tiplab(geom='label', offset=1, hjust=.5) + 
    geom_image(x=.8, y=5.5, image="frog.jpg", size=.2)  + 
    ggtitle("Y叔不想养蛙", subtitle="只想养你,毕竟养猪能致富")

p <- p + theme(plot.title=element_text(family="STHeiti"), plot.subtitle=element_text(family="STHeiti"))
ggsave(p, file="ggtree_frog.png", width=8.5, height=7.5)

为了让大家可以重复出上面这个图,我把图片放在了github上,https://github.com/GuangchuangYu/frog_tree

看完你还想看