绘制正方形接近系统发育类群

时间:2018-03-11 18:08:07

标签: r phylogeny

我试图在系统发育的终端节点旁边绘制一些彩色方块。但是,我不能让正方形接近终端节点。我认为这与分类标签有关 - 尽管它们被关闭了。

我打算在彼此之后绘制正方形的列,这就是为什么我不能使用带有方形字符的tip.labels。

这是我的测试功能:

.squares = function(colour, start_point, n){
    colour = colour[length(colour):1]

    inc = 200
    ## Plot either points or rectangles. Dependant on arugment
    rect(start_point, 0.5:(n-0.5), start_point+inc, 
         1.5:(n+0.5), col = colour)
    start_point = start_point + inc ## inc is the width of each box. 
    start_point
}

这是测试代码:

library(ape)

n = 20
tree = rcoal(n, tip.label = letters[1:n])
t = plot(tree, show.tip.label = FALSE, no.margin = TRUE)

abline(v = t$x.lim[2], col = "red", lwd = 5)
.squares(rep("red", 20), start_point = t$x.lim[2], n = n)

给出了:

enter image description here

我无法弄清楚如何缩小正方形和终端节点之间的差距。

任何方向都会受到赞赏。由于我还将绘制多列方块,因此了解如何在不进入边距的情况下添加更多列将会很有帮助。

感谢

1 个答案:

答案 0 :(得分:1)

我似乎无法重现你的错误(水平线在提示限制时正确添加)。

但是,您的问题似乎与Liam Revell's excellent blog上的帖子非常相似。请查看this codethat one甚至更好,this final one

在你的情况下,你可以使用类似的东西:

## phytools package
library(phytools)

## The tree
n = 20
tree = rcoal(n, tip.label = letters[1:n])

## The data
data <- data.frame(rep(1, n), rep(2, n))
colnames(data) <- c("Something", "SomethingElse")

## The plot (using a near 0 font size plot)
object <- plotTree.datamatrix(tree, data, sep=0, srt=70, yexp=1.05, fsize=0.0001)