After the release of
meme package, I received several feedbacks from users.
The most usefule one is the comment on my blog post:
Greetings Mr. Yu,
I am very happy that this package exists. Thank you for making it! I would like to request a feature, to ensure the package is able to compete with professional meme-creation tools like memegenerator and paint.net. Since memes often use the font Impact, in white and with black outline, I believe the package would be more powerful if it also did that automatically.
Sercan Kahveci, MSc
Content creator at Questionable Research Memes on Facebook https://www.facebook.com/QResearchMemes/
The words, ‘compete with professional meme-creation tools’, stimulated me to develop text plotting with background outline effect.
Now this feature is available in meme v>=0.0.7, which can be downloaded from CRAN.
I developed a tiny toy package,
meme, which is now on CRAN. As it’s name indicated, it was designed to create memes, which are captioned photos that are intended to be funny, riduculous.
The package is quite simple. You can use
meme() function to add meme captions, and this is all the package supposed to do:
library(meme) u <- "http://www.happyfamilyneeds.com/wp-content/uploads/2017/08/angry8.jpg" meme(u, "code", "all the things!")
I just discovered an interesting
geofacet, that supports arranging facet panels that mimics geographic topoloty.
After playing with it, I realized that it is not only for visualizing
geo-related data, but also can be fun for presenting data to mimics pixel art.
With ggtree (Yu et al. 2017), it is very easy to create phylomoji. Emoji is internally supported by ggtree.
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")
This is a question from ggtree google group:
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.
A question on biostars asking how to generate the following figure:
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 am using dotplot() to visualize results from enrichGO(), enrichDO(), enricher() and compareCluster() in clusterProfiler R package. When specifying showCategory, I get the right number of categories except with the results of compareCluser().
In my case, I use compareCluster() on a list of 3 elements:
str(ClusterList) List of 3 $ All : chr [1:1450] "89886" "29923" "100132891" "101410536" ... $ g1 : chr [1:858] "89886" "29923" "100132891" "101410536" ... $ g2: chr [1:592] "5325" "170691" "29953" "283392" ... CompareGO_BP=compareCluster(ClusterList, fun="enrichGO", pvalueCutoff=0.01, pAdjustMethod="BH", OrgDb=org.Hs.eg.db,ont="BP",readable=T) dotplot(CompareGO_BP, showCategory=10, title="GO - Biological Process")
I ask for 10 categories, but I get 15 categories in All, 8 categories in g1 and 12 categories in g2. None of the categories, neither the sum of the categories are 10…
Is the option showCategory working in the case of comparison? Am I missing something here?
And which categories precisely will it plot? the most significant whatever my 3 cases or the most significant of each case?
The question was posted in Bioconductor support site. It seems quite confusing and I think I need to write a post to clarify it.
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).
gheatmap for visualizing heatmap and
msaplot for 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
ggtree provides many helper functions for manupulating phylogenetic trees and make it easy to explore tree structure visually.
Here, as examples, I used
ggtree to draw capital character
C, which are first letter of my name :-).
To draw a tree in such shape, we need
fan layout (
circular layout with open angle) and then rotating the tree to let the open space on the correct position. Here are the source codes to produce the
C shapes of tree. I am thinking about using the
G shaped tree as
ggtree logo. Have fun with