top of page


BioCodeKb - Bioinformatics Knowledgebase

The ggtree is designed for more general purpose or specific type of tree visualization and annotation. It supports grammar of graphics implemented in ggplot2 and users can freely visualize or annotate a tree by combining many annotation layers. It is a  phylogenetic tree viewer for different types of tree annotations. ggtree extends the ggplot2 plotting system which implemented the grammar of graphics. It is designed for not only viewing phylogenetic tree but also displaying annotation data in the tree.

Only several of them, such as FigTree, TreeDyn and iTOL, allow users to annotate the trees with coloring branches, highlighted clades and tree features. However, their pre-defined annotating functions are usually limited to some specific phylogenetic data. As phylogenetic trees become more widely used in multidisciplinary studies, there is an increasing need to incorporate various types of the phylogenetic multivariate and other associated data from different sources into the trees for visualizations and further analyses.

Therefore, in addition to standalone applications that focus on each of the specific analysis and data type, researchers studying molecular evolution need a robust and programmable platform that allows the high levels integration and visualization of many of these different aspects of data (raw or from other primary analyses) over the phylogenetic trees to identify their associations and patterns.

To fill this gap, we developed ggtree, a package for the R programming language (R Core Team 2016) released under the Bioconductor project.

Two methods, for Mapping and Visualizing Associated Data on Phylogeny, are used by ggtree. Method 1 allows external data to be mapped on the tree structure and used as visual characteristic in tree and data visualization. Method 2 plots the data with the tree side by side using different geometric functions after reordering the data based on the tree structure. These two methods integrate data with phylogeny for further exploration and comparison in the evolutionary biology context.


  • The ggtree supports displaying phylogram and cladogram and can visualize a tree with different layouts, including rectangular, slanted, circular, fan, unrooted, time-scale and two-dimensional tree.

  • The ggtree allows tree covariates stored in tree object to be used directly in tree visualization and annotation. These covariates can be meta data of the sampling species or sequences used in the tree, statistical analysis or evolutionary inferences of the tree

  • ggtree excels at exploring the tree structure and related data visually.

  • Phylogenetic trees can be visually manipulated by collapsing, scaling and rotating clade. Circular and fan layout tree can be rotated by specific angle. Trees structures can be transformed from one layout to another.

  • It supports grammar of graphics used in ggplot2 and users can freely visualize and annotate a tree by combining several annotation layers.

  • The ggtree supports many ways of manipulating the tree visually, including viewing selected clade to explore large tree, taxa clustering, rotating clade or tree, zoom out or collapsing clades.

  • The ggtree creates geometric layers, helps in setting of specific panel


Need to learn more about ggTree and much more?

To learn Bioinformatics, analysis, tools, biological databases, Computational Biology, Bioinformatics Programming in Python & R through interactive video courses and tutorials, Join BioCode.

bottom of page