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

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

使用barplot来展示富集分析结果是很常用的,而dotplot比较barplot来说,多了一个点大小的信息,可以比barplot展示多一个信息,所以是比较推荐的,我之前已经写了《dotplot展示富集分析结果》和《dotplot for GSEA》两篇文章,dotplot虽然简单,很多人会觉得会容易用ggplot2画出来,但其实有些细节,比如《为什么画出来的点比指定的数目要多?》,有些技巧,比如《搞大你的点,让我们画真正的气泡图》,是很多新手所不具备的,图虽然简单,但老司机的飚车技能也不可小看哦,所以我在《听说你也在画dotplot,但是我不服!》的文后就说了一句话:

clusterProfiler之所以好,因为真的考虑了很多细节!请放开那图,让clusterProfiler来画!

Continue reading

在《你所不知道的,R的N种打开方式》我介绍了N多种打开R的方式,甚至于你还能用python写的号称21世纪的R界面:《R,python喊你回家吃饭啦》。

我自己一直很少用RStudio,而是用Emacs,虽然Emacs比较小众,也不适合这个公众号的粉丝,但文本编辑器之于程序程好比剑客手中的剑,一个用着顺手、长期使用的文本编辑器比什么都好,在《你所不知道的,R的N种打开方式》中我介绍了Emacs, Vim, textMate, sublime,今天要介绍另一款,VSCode,这是微软开源的文本编辑器,非常现代化,有很好的扩展生态。

Continue reading

这是小伙伴的命题作文,下面这个数据是曾老湿给出来的,其中header行竟然放在了最后一行,我手工把它挪到了第一行,里面还有一个数据缺失的,会导致读了数据后会有NA值,需要去除。

$ file summary_ATAC_seq_motif.xlsx                                                                                     
summary_ATAC_seq_motif.xlsx: Microsoft Excel 2007+

这是一个Excel文件,我们可以用readxl来读:

require(readxl)
x <- read_xlsx("summary_ATAC_seq_motif.xlsx")

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong