(This article was first published on

**YGC » R**, and kindly contributed to R-bloggers)I implemented a function, *subview*, in ggtree that make it easy to embed a subplot in ggplot.

An example is shown below:

^{?}View Code RSPLUS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
library(ggplot2) library(ggtree) dd <- data.frame(x=LETTERS[1:3], y=1:3) pie <- ggplot(dd, aes(x=1, y, fill=x)) + geom_bar(stat="identity", width=1) + coord_polar(theta="y") + theme_tree() + xlab(NULL) + ylab(NULL) + theme_transparent() x <- sample(2:9) y <- sample(2:9) width <- sample(seq(0.05, 0.15, length.out=length(x))) height <- width p <- ggplot(data=data.frame(x=c(0, 10), y=c(0, 10)), aes(x, y))+geom_blank() print(p) for (i in seq_along(x)) { p %<>% subview(pie, x[i], y[i], width[i], height[i]) print(p) } |

With this function, we can plot a specific clade and add a subplot of the whole topology; we can also add relative statistic graph above the tree or to a specific node. It’s not specific to phylogenetic tree, it works with all ggplot objects as demonstrated in the example.

PS: ggtree is now presented in CRAN Task View: Phylogenetics.

AND get its first citation.

#### Related Posts

To

**leave a comment**for the author, please follow the link and comment on their blog:**YGC » R**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...