-## plot.phylo.R (2009-11-10)
+## plot.phylo.R (2010-03-19)
## Plot Phylogenies
-## Copyright 2002-2009 Emmanuel Paradis
+## Copyright 2002-2010 Emmanuel Paradis
## This file is part of the R-package `ape'.
## See the file ../COPYING for licensing issues.
phyloORclado <- type %in% c("phylogram", "cladogram")
horizontal <- direction %in% c("rightwards", "leftwards")
+ xe <- x$edge # to save
if (phyloORclado) {
## we first compute the y-coordinates of the tips.
phyOrder <- attr(x, "order")
## make sure the tree is in cladewise order:
if (is.null(phyOrder) || phyOrder != "cladewise") {
- xe <- x$edge
x <- reorder(x) # fix from Klaus Schliep (2007-06-16)
if (!identical(x$edge, xe)) {
## modified from Li-San Wang's fix (2007-01-23):
tmp <- if (show.tip.label) max(xx.tips + strWi/alp) else max(xx.tips)
}
x.lim[2] <- tmp
- if (direction == "leftwards") xx <- x.lim[2] - xx #max(xx[ROOT] + tmp)
-# else max(xx[1:Ntip] + tmp)
} else x.lim <- c(1, Ntip)
} else switch(type, "fan" = {
if (show.tip.label) {
if (show.tip.label) -1 - max(nchar(x$tip.label) * 0.03 * cex)
else -1
}
+ ## mirror the xx:
+ if (phyloORclado && direction == "leftwards") xx <- x.lim[2] - xx
if (is.null(y.lim)) {
if (phyloORclado) {
if (horizontal) y.lim <- c(1, Ntip) else {
tmp <- if (show.tip.label) max(yy.tips + strWi/alp) else max(yy.tips)
}
y.lim[2] <- tmp
- if (direction == "downwards") yy <- y.lim[2] - yy
}
} else switch(type, "fan" = {
if (show.tip.label) {
if (type == "radial")
y.lim[1] <- if (show.tip.label) -1 - max(nchar(x$tip.label) * 0.018 * max(yy) * cex) else -1
}
+ ## mirror the yy:
+ if (phyloORclado && direction == "downwards") yy <- y.lim[2] - yy
if (phyloORclado && root.edge) {
if (direction == "leftwards") x.lim[2] <- x.lim[2] + x$root.edge
if (direction == "downwards") y.lim[2] <- y.lim[2] + x$root.edge
"upwards" = segments(xx[ROOT], 0, xx[ROOT], x$root.edge),
"downwards" = segments(xx[ROOT], yy[ROOT], xx[ROOT], yy[ROOT] + x$root.edge))
if (show.tip.label) {
+ if (is.expression(x$tip.label)) underscore <- TRUE
if (!underscore) x$tip.label <- gsub("_", " ", x$tip.label)
if (phyloORclado)
label.offset = label.offset, x.lim = x.lim, y.lim = y.lim,
direction = direction, tip.color = tip.color,
Ntip = Ntip, Nnode = Nnode)
- assign("last_plot.phylo", c(L, list(edge = x$edge, xx = xx, yy = yy)),
+ assign("last_plot.phylo", c(L, list(edge = xe, xx = xx, yy = yy)),
envir = .PlotPhyloEnv)
invisible(L)
}
edge.color <- rep(edge.color, length.out = Nedge)
edge.width <- rep(edge.width, length.out = Nedge)
edge.lty <- rep(edge.lty, length.out = Nedge)
- DF <- data.frame(edge.color, edge.width, edge.lty)
+ DF <- data.frame(edge.color, edge.width, edge.lty, stringsAsFactors = FALSE)
color.v <- rep("black", Nnode)
width.v <- rep(1, Nnode)
lty.v <- rep(1, Nnode)