]> git.donarmstrong.com Git - ape.git/blobdiff - R/zoom.R
some updates for ape 3.0-7
[ape.git] / R / zoom.R
index 270cf3df1086f2313524cdeedaebdcbdd7e76215..b24737612f73048e7594dc09450f587e5306f448 100644 (file)
--- a/R/zoom.R
+++ b/R/zoom.R
@@ -1,8 +1,8 @@
-## zoom.R (2004-12-17)
+## zoom.R (2009-07-27)
 
 ##   Zoom on a Portion of a Phylogeny
 
-## Copyright 2003-2004 Emmanuel Paradis
+## Copyright 2003-2009 Emmanuel Paradis
 
 ## This file is part of the R-package `ape'.
 ## See the file ../COPYING for licensing issues.
@@ -13,21 +13,20 @@ zoom <- function(phy, focus, subtree = FALSE, col = rainbow, ...)
     n <- length(focus)
     for (i in 1:n)
       if (is.character(focus[[i]]))
-        focus[[i]] <- which(phy$tip.label == focus[[i]])
-    if (is.function(col))
-      if (deparse(substitute(col)) == "grey")
-        col <- grey(1:n/n) else col <- col(n)
-    ext <- list()
-    length(ext) <- n
+        focus[[i]] <- which(phy$tip.label %in% focus[[i]]) # fix by Yan Wong
+    if (is.function(col)) {
+        col <- if (deparse(substitute(col)) == "grey") grey(1:n/n) else col(n)
+    }
+    ext <- vector("list", n)
     for (i in 1:n)
       ext[[i]] <- drop.tip(phy, phy$tip.label[-focus[[i]]],
-                           subtree = subtree)
+                           subtree = subtree, rooted = TRUE)
     nc <- round(sqrt(n)) + 1
     nr <- ceiling(sqrt(n))
     M <- matrix(0, nr, nc)
     x <- c(rep(1, nr), 2:(n + 1))
     M[1:length(x)] <- x
-    layout(M, c(1, rep(3 / (nc - 1), nc - 1)))
+    layout(M, c(1, rep(3/(nc - 1), nc - 1)))
     phy$tip.label <- rep("", length(phy$tip.label))
     colo <- rep("black", dim(phy$edge)[1])
     for (i in 1:n)