2017-07-06 63 views
1

我想在第一個節點上只繪製一個點,然後在第一個尖端繪製另一個點。到目前爲止,我可以一次畫出點,但只有所有點,我找不到分開繪製它的方式。我有什麼至今:系統發育樹中的繪圖點R

library(ape) 
t3 = '((a:1,b:1):1,(c:1.5,d:0.5):0.5):1;' 
plot(read.tree(text = t3),root.edge=T) 
nodelabels(pch=21, col="black", adj=1, bg='blue', cex=2) 

任何幫助表示讚賞

回答

1

這不是確切的答案,但它應該幫助。我通過查看nodelabels函數的代碼得到了這個結果。

library(ape) 
t3 = '((a:1,b:1):1,(c:1.5,d:0.5):0.5):1;' 
plot(read.tree(text = t3),root.edge=T) 

lastPP <- get("last_plot.phylo", envir = .PlotPhyloEnv) 
node <- (lastPP$Ntip + 1):length(lastPP$xx) 
XX <- lastPP$xx[node] 
YY <- lastPP$yy[node] 
BOTHlabels(text="", node, XX[1], YY[1], adj = c(0.5, 0.5), 
frame = "rect", pch = 21, thermo = NULL, pie = NULL, 
piecol = NULL, col = "blue", bg = "blue", 
horiz = FALSE, width = NULL, height = NULL, cex=2) 

XX和YY's給出節點。在這裏,我只使用第一個。你必須要做的提示也是類似的。看看tiplabels的代碼。

+0

效果很好。非常感謝。 – Francisco