phytools (version 2.1-1)

cophylo: Creates a co-phylogenetic plot


Visualize co-phylogenetic trees by multiple methods.


cophylo(tr1, tr2, assoc=NULL, rotate=TRUE, ...)
# S3 method for cophylo
plot(x, ...)
cotangleplot(tr1, tr2, type=c("cladogram","phylogram"),
   use.edge.length=TRUE, tangle=c("both","tree1","tree2"), ...)


An object of class "cophylo" which includes the following components or a pair of plotted facing phylogenies with links between tips as specified in assoc.



object of class "phylo".


object of class "phylo".


matrix containing the tip labels in tr1 to match to the tip labels in tr2. Note that not all labels in either tree need to be included; and, furthermore, one label in tr1 can be matched with more than one label in tr2, or vice versa.


logical argument indicating whether nodes on both trees should be rotated to attempt to match in vertical position.


in the case of plot.cophylo, an object of class "cophylo" to be plotted.


for cotangleplot, the tree plotting style.


for cotangleplot, a logical value indicating whether or not to plot trees with edge lengths.


for cotangleplot, whether to tangle the left tree, the right tree, or both.


optional arguments to be passed to tipRotate, or, in the case of plot.cophylo, to the internally used tree plotting function, phylogram. phylogram takes similar arguments to plotSimmap, such as fsize, ftype, lwd, and pts, though not all options from plotSimmap and plotTree are available. If fsize is supplied as a vector, different size fonts for the left & right facing trees may be used. In addition, the optional argument, which should be a vector containing the lengths of the scale bars desired for the right & left trees, will add scale bars to the plot when supplied to plot.cophylo. If either tree contains polytomies, the cophylo argument rotate.multi should be set to TRUE. If curved linking lines are desired, the plot.cophylo argument link.type should be set to "curved". Other arguments for the plot method include link.col, link.lty, and link.lwd, which can be supplied as a scalar or a vector in which the order of the elements corresponds to the order of the associations in assoc. Finally, edge.col, a list consisting of two vectors (left and right) can be used to specify the edge colors of the two left & right plotted trees. Note that the edge order is the same as in the rotated trees, assuming that a rotation has been performed on x.


Liam Revell


cophylo an object of class "cophylo" or, in the case of plot.cophylo, plots that object. The function can (optionally) first attempt to rotate the nodes of both trees to optimize vertical matching of tips.

If no matrix of associations, assoc, is provided, then cophylo will look for exact matches of tip labels between trees.

cotangleplot creates a co-phylogenetic plot in which the edges of the matched trees are crossing and is designed to be used only on phylogenies with matching tip labels.


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

See Also

cophyloplot, plotSimmap


Run this code
## load data from Lopez-Vaamonde et al. (2001)
## create co-phylogenetic object
## plot co-phylogenies

Run the code above in your browser using DataCamp Workspace