这是最近github上的问题,如何反转time scale,也就是把最近的时间设为0。而内部节点为距今多少年,这个很容易,把x轴的值变成x-max(x)就可以,感觉这个也只会在时间树上使用,所以取名revts(reverse time scale),revts之后,x轴最大值是0,其它为负数,可以使用scale_x_continuous改label为绝对值。

如下示例:

> library(ggtree)
> tr = rtree(30)
> p =ggtree(tr) + theme_tree2()
> p1 = revts(p)
> p2 = p1 + scale_x_continuous(
              breaks=c(-4:0), 
              labels=abs(-4:0))
> multiplot(p, p1, p2, ncol=3)

![](https://guangchuangyu.github.io/blog_images/2016/Screen Shot 2016-11-07 at 11.00.08 AM.png)