Learn R Programming

phytools (version 2.3-0)

fancyTree: Plots special types of phylogenetic trees

Description

Plots phylogenies (or phylogenetic trees and comparative data) in a variety of different styles.

Usage

fancyTree(tree, type=c("extinction","traitgram3d","droptip","densitymap",
   "contmap","phenogram95","scattergram"), ..., control=list())
phyloScattergram(tree, X=NULL, ...)
phenogram95(tree, x=NULL, ...)

Value

This function plots different types of phylogenetic trees. For type="droptip" the function also returns the pruned tree.

Arguments

tree

an object of class "phylo".

type

the type of special plot to create. See Description.

...

arguments to be passed to different methods. See Description.

control

a list of control parameters, depending on type.

X

in phyloScattergram, a matrix of continuous trait values. Row names in the matrix should correspond to species names in the tree.

x

in phenogram95, a named vector with values for a continuously distributed trait.

Author

Liam Revell liam.revell@umb.edu

Details

This function plots a phylogeny or phylogenetic tree and comparative data in a variety of different styles, depending on the value of type. In some instances, fancyTree is now just a wrappe for other phytools functions, such as contMap and densityMap.

If type="extinction" (or any unambiguous abbreviation) the function will plot a tree in which branches preceding the MRCA of all extant taxa and branches leading only to extinct lineages are plotted with dashed red lines.

If type="traitgram3d" the function will plot a three dimensional traitgram (that is, a projection of the tree into three dimensional morphospace where two dimensions are the phenotypic trait and the third axis is time since the root). In this case, the additional argument X, a matrix containing the tip values of all species (with species IDs as row names) should be supplied. Optionally, the user can also supply the matrix A, which contains the ancestral states in the tree with rows labeled by node number.

If type="droptip" the function will create a two panel figure in which the first panel is the tree with lineages to be pruned highlighted; and the second panel is the pruned tree. In this case, the additional argument tip, the tip name or vector of tip names to be dropped, must be supplied.

If type="densitymap", a posterior probability density "heat-map" is created based on a set of trees in a "multiSimmap" object containing a binary [0,1] mapped character. (See densityMap for additional optional arguments if type="densitymap".)

If type="contmap", reconstructed continuous trait evolution is mapped on the tree. Again, see contMap for additional arguments if type="contmap".

If type="phenogram95" a 95% traitgram (aka. "phenogram") is plotted using transparency to visualize uncertainty at ancestral nodes and along branches. Most of the options of phenogram are available.

Finally, if type="scattergram" a phylogenetic scatter plot matrix containing contMap style trees on the diagonal and phylomorphospace plots in non-diagonal panels is produced. For this type a trait matrix X must also be supplied. The only additional arguments available for this type are ftype, fsize, colors, and label. (See phylomorphospace for details on how these arguments should be used.) This function calls phyloScattergram (which is also now exported to the name space) internally. In addition to creating a plot, phyloScattergram also returns an object of class "phyloScattergram" which can be replotted using different options if desired.

Presently only type="traitgram3d" uses the list control which can be supplied the same set of control parameters as phylomorphospace3d, as well as the control parameter maxit which will be passed to anc.ML.

Finally, the optional argument hold will be passed to multiple methods if supplied. It is a logical value that indicates whether or not the output to the graphical device should be held using dev.hold before plotting (defaults to hold=TRUE).

References

Evans, M. E. K., Smith, S. A., Flynn, R. S., Donoghue, M. J. (2009) Climate, niche evolution, and diversification of the "bird-cage" evening primroses (Oenothera, sections Anogra and Kleinia). American Naturalist, 173, 225-240.

Revell, L. J. (2013) Two new graphical methods for mapping trait evolution on phylogenies. Methods in Ecology and Evolution, 4, 754-759.

Revell, L. J. (2014) Graphical methods for visualizing comparative data on phylogenies. Chapter 4 in Modern phylogenetic comparative methods and their application in evolutionary biology: Concepts and practice (L. Z. Garamszegi ed.), pp. 77-103.

Revell, L. J. (2024) phytools 2.0: an updated R ecosystem for phylogenetic comparative methods (and other things). PeerJ, 12, e16505.

See Also

contMap, densityMap, drop.tip, phenogram, phylomorphospace3d, plot.phylo, plotSimmap

Examples

Run this code
## plot tree with extinction
set.seed(10)
tree<-pbtree(b=1,d=0.4,t=4)
fancyTree(tree,type="extinction")

if (FALSE) {
## plot 3D traitgram
## load data from Revell & Collar (2009)
data(sunfish.tree)
data(sunfish.data)
fancyTree(sunfish.tree,type="traitgram3d",
  X=sunfish.data[,2:3],
  control=list(spin=FALSE))}
	
## plot with dropped tips
tree<-pbtree(n=30)
tips<-sample(tree$tip.label)[1:10]
pruned<-fancyTree(tree,type="droptip",tip=tips)
par(mfrow=c(1,1)) ## reset mfrow to default

if (FALSE) {
## plot 95-percent CI phenogram
data(mammal.tree)
data(mammal.data)
bodyMass<-setNames(mammal.data$bodyMass,
  rownames(mammal.data))
fancyTree(mammal.tree,type="phenogram95",x=bodyMass,
  fsize=0.7,ftype="i")}

par(mar=c(5.1,4.1,4.1,2.1)) ## reset mar to defaults

Run the code above in your browser using DataLab