分享

交互式探索进化树

 paul2020 2018-04-26

https://twitter.com/drandersgs/status/965996335882059776

推特上@drandersgs的推文,演示了ggtree+plotly进行交互树探索进化树。我们先看图:

代码很简单:

# LOAD LIBS ---------------------------------------------------------------
library(ape)
library(ggtree)
library(plotly)
# CREATE A TREE -------------------------------------------------------------
n_samples <->20
n_grp <->4
tree <- ape::rtree(n="">
# CREATE SOME METADATA ----------------------------------------------------
id <->
set.seed(42)
grp <->1:n_grp], size = n_samples, replace = T)
dat <- tibble::tibble(id="">
                     grp = grp)
# PLOT THE TREE -----------------------------------------------------------
p1 <->
metat <- p1$data="" %="">%
 dplyr::inner_join(dat, c('label' = 'id'))
p2 <- p1="">
 geom_point(data = metat,
            aes(x = x,
                y = y,
                colour = grp,
                label = id))
plotly::ggplotly(p2)

但如果你对ggtree熟悉的话,我想你应该知道这个图的产生可以用更加ggtree、更加简单的方式:

p1 <->这一句后面的代码,其实干的就是下面一个语句而已。

p2 <- p1="">+% dat + geom_tippoint(aes(color=grp))

但上面这个p2ggplotly的时候,就会报名,因为我在ggtree里写的这个geom_tippoint是没有写一个函数去翻译成plotly的,这个有待以后去写,要想让plotly真正支持ggtree,还要很多事情要做的。但起码简单一些的事情,比如像上面这个,去zoom in, zoom out, 鼠标停留在节点上,看一些相关的注释,还是可以做到的。

交互式可视化,我在ggtree中也写过一点功能,请移步《交互式操作进化树》。

另外关于ggtree和其它包合体,以相互扩展功能的,例子还有很多,比如:

分别是和ggbio, ggbridges,emojifont,comicR和ggimage包的合体。

给赞 给Y叔点个赞 小程序

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多