这是CJ在我的星球里分享的一个关于饼图的实现方式,代码的排版太差,还有一点是对于普通用户来说,还是有点难度,如果是我,必须是写成函数,直接出图。
《ggplot2字体溢出的那点破事》这是经典老问题了,现在新版本的ggplot2
有新的解决方案了,在coord_cartesian
中新加入了clip
参数,这样可以支持把图层画在画布之外,那么文本打过界也就支持了。这有一个好处,是可以支持direct label,而不需要调整xlim
和ylim
,毕竟你把xlim
和ylim
搞大有时候会给人以误导,认为你的数据取值范围就是图中的xlim
和ylim
,但实际上要小一些。
我以ggtree
为例,为了让tip label打全,那么p1
把时间给搞到2020,但实际上最近的采样时间是2013年,这样你单看x
轴的标记,总感觉有一点点不对路,或者有一点点别扭。现在好了,我不设置xlim
,而是让label打过界,当然还是需要有足够的空间来放这些文本,这个可以通过把margin
搞大来实现。
R 3.5.0
已经发布了,我昨天已经更新了,Bioconductor也将在5月初发布3.7
版本,就我个人而言,新版的Bioconductor主要有以下一些新东西:
enrichplot
新包enrichplot
,《enrichplot: 让你们对clusterProfiler系列包无法自拔
》,以后clusterProfiler
系列出图更好看了,而且所有图你都可以用cowplot
拼图。
这是去年「知识星球」里的提问,「知识星球」相当于是众筹我一年的时间,向我提问,请谨慎入坑。
我当时就写了一个函数ggvenn
,这个函数其实包装了venneuler
,但由于venneuler
依赖rJava
,而很多小伙伴不会装rJava
,而因此装不了yyplot
,所以我去掉了这个依赖,但如果你想要用ggvenn
这个函数,请自行安装rJava
和venneuler
。其实还有另外一个包,VennDiagram
,它的输出是gList
,所以可以直接封装为ggplot2
图层,然而对于画venn plot,我并没有太多的兴趣,《CS6: ChIPseeker的可视化方法(中秋节的视觉饕餮)》一文中介绍的upset plot,可能更好一些。
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
:
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:
require(ggplot2)
p <- ggplot(iris) + aes(x = Sepal.Length, y = Sepal.Width, color=Species) +
geom_point(size=5) + theme_classic()
首先我们有一个图,是用ggplot2
画的,上面这图大家太熟悉,不打印出来都知道是什么了。
我在最新版的ggimage
中加入了一个ggbackground
的函数,我随便从网上找一张iris
的图片,我们把p
和img
同时传给ggbackground
就好了,非常容易,于是图的内容还是一样,但加了一张我们给定的图片做为背景。
require(ggimage)
img = "https://assets.bakker.com/ProductPics/560x676/10028-00-BAKI_20170109094316.jpg"
ggbackground(p, img)