ggtree画树是不带root edge的,之前在《中空的环形树》一文中,有用户想要加长长的root edge,这样变成环形树的时候,就可以用这个root edge把树给顶出去,这个我给出的解决方案是留白,大家可以回过去看那篇文章。

然而root edge在某些时候还是需要的,我其实也一直有要写的想法,不过因为不是特别需要的东西,一直也就放着,刚好最近有用户在feature request,想要画root edge,于是我就实现了geom_rootedge图层,当你加这个图层的时候,root edge就自动画上去了。

Continue reading

这是CJ在我的星球里分享的一个关于饼图的实现方式,代码的排版太差,还有一点是对于普通用户来说,还是有点难度,如果是我,必须是写成函数,直接出图。

Continue reading

ggplot2字体溢出的那点破事》这是经典老问题了,现在新版本的ggplot2有新的解决方案了,在coord_cartesian中新加入了clip参数,这样可以支持把图层画在画布之外,那么文本打过界也就支持了。这有一个好处,是可以支持direct label,而不需要调整xlimylim,毕竟你把xlimylim搞大有时候会给人以误导,认为你的数据取值范围就是图中的xlimylim,但实际上要小一些。

我以ggtree为例,为了让tip label打全,那么p1把时间给搞到2020,但实际上最近的采样时间是2013年,这样你单看x轴的标记,总感觉有一点点不对路,或者有一点点别扭。现在好了,我不设置xlim,而是让label打过界,当然还是需要有足够的空间来放这些文本,这个可以通过把margin搞大来实现。

Continue reading

这是去年「知识星球」里的提问,「知识星球」相当于是众筹我一年的时间,向我提问,请谨慎入坑。

我当时就写了一个函数ggvenn,这个函数其实包装了venneuler,但由于venneuler依赖rJava,而很多小伙伴不会装rJava,而因此装不了yyplot,所以我去掉了这个依赖,但如果你想要用ggvenn这个函数,请自行安装rJavavenneuler。其实还有另外一个包,VennDiagram,它的输出是gList,所以可以直接封装为ggplot2图层,然而对于画venn plot,我并没有太多的兴趣,《CS6: ChIPseeker的可视化方法(中秋节的视觉饕餮)》一文中介绍的upset plot,可能更好一些。

Continue reading

I don’t know whether ‘rename taxa’ is a common task or not. It seems not a good idea to rename taxa in Newick tree text, since it may introduce problems when mapping the original sequence alignment to the tree.

If you just want to show different or additional information when plotting the tree, it is fine and easy to do it using ggtree:

Continue reading

ggimage 0.1.4 is available on CRAN.

This release introduces a new function called ggbackground for setting image background as ggplot canvas.

require(magick)
require(ggplot2)
require(ggimage) 
require(ggplot2)
p <- ggplot(iris) + aes(x = Sepal.Length, y = Sepal.Width, color=Species) + 
    geom_point(size=5) + theme_classic()

Suppose we have the above ggplot object, p, the only thing we need to do is passing the p with an image file name (local or remote) to ggbackground, as demonstrated below:

Continue reading

require(ggplot2)
 p <- ggplot(iris) + aes(x = Sepal.Length, y = Sepal.Width, color=Species) + 
    geom_point(size=5) + theme_classic()

首先我们有一个图,是用ggplot2画的,上面这图大家太熟悉,不打印出来都知道是什么了。

我在最新版的ggimage中加入了一个ggbackground的函数,我随便从网上找一张iris的图片,我们把pimg同时传给ggbackground就好了,非常容易,于是图的内容还是一样,但加了一张我们给定的图片做为背景。

require(ggimage) 
img = "https://assets.bakker.com/ProductPics/560x676/10028-00-BAKI_20170109094316.jpg"
ggbackground(p, img)

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou