X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=R%2Fzoom.R;h=b24737612f73048e7594dc09450f587e5306f448;hb=8fa54a671f763f10f68bfe660b6a5949123d3d41;hp=270cf3df1086f2313524cdeedaebdcbdd7e76215;hpb=c827059eeafc8cbe41c812b26979543ab287803e;p=ape.git diff --git a/R/zoom.R b/R/zoom.R index 270cf3d..b247376 100644 --- 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)