library(ggtree) tree_text <- "(((((cow, (whale, dolphin)), (pig2, boar)), camel), fish), seedling);" x <- read.tree(text=tree_text) ggtree(x, linetype="dashed", color='firebrick') + xlim(NA, 7) + ylim(NA, 8.5) + geom_tiplab(aes(color=label), parse='emoji', size=14, vjust=0.25) + labs(title="phylomoji", caption="powered by ggtree + emojifont")
ggtreeto 2 packages,
ggtreeis mainly focus on visualization and annotation, while
treeiofocus on parsing and exporting tree files. Here is a welcome message from
treeiothat you can convert
ggtreeoutput to tree object which can be exported as newick or nexus file if you want.
ggplot2, output of
ggtree is actually a
ggplot object. The
ggtree object can be rendered as graph by
as.treedata to convert
ggtree object to
Dear ggtree team,
how can I apply a geom_xxx to only one facet panel? For example if i want to get
geom_text()in the dot panel? I cant see the
facet_grid(. ~ var)function call, so I don’t know which subsetting to use. I have already read http://stackoverflow.com/questions/29873155/geom-text-and-facets-not-working
tr <- rtree(30) d1 <- data.frame(id=tr$tip.label, val=rnorm(30, sd=3)) p <- ggtree(tr) p2 <- facet_plot(p, panel="dot", data=d1, geom=geom_point, aes(x=val), color='firebrick') d2 <- data.frame(id=tr$tip.label, value = abs(rnorm(30, mean=100, sd=50))) p3 <- facet_plot(p2, panel='bar', data=d2, geom=geom_segment, aes(x=0, xend=value, y=y, yend=y), size=3, color='steelblue') + theme_tree2()
If this can be done, we can create even more comprehensive tree plots.
Here are the outputs produced by
aes(color=VAR)syntax. For user’s own data, it is also easy as
%<+%operator to attach user data.
This can be quite easy to implement in ggtree, I can write a
geom layer to layout the alignment. As ggbio already provides many
geom for genomic data and I don’t want to re-invent the wheel, I decided to try
ggtree+ggbio. This is also the beauty of
R that packages complete each others.
I try to plot long tip labels in ggtree and usually adjust them using xlim(), however when creating a facet_plot xlim affects all plots and minimizes them.
Is it possible to work around this and only affect the tree and it’s tip labels leaving the other plots in facet_plot unaffected?
This is indeed a desire feature, as
ggplot2 can’t automatically adjust
xlim for text since the units are in two different spaces (data and pixel).
gheatmapfor visualizing heatmap and
msaplotfor visualizing multiple sequence alignment with phylogenetic tree.
We may have different data types and want to visualize and align them with the tree. For example,
dotplot of SNP site (e.g. using
barplot of trait values (e.g. using
geom_barh(stat='identity')) et al.
To make it easy to associate different types of data with phylogenetic tree, I implemented the
facet_plot function which accepts a
geom function to draw the input
data.frame and display it in an additional