微信公众号平台大部分人都是抄来抄去的二手资料,像joyplot这种特别新的东西,就很难看到,我试着搜索了一下,发现只有三篇,都是我写的。
最近公众号「生信媛」和「生信宝典」的小伙伴在说ggplot2无法一次性设置所有字体,theme
只能设置axis text, title这些,而搞不了geom_text
,geom_text
必须要手工输入family=XXX
来设置,因为不能使用theme
来更换,也就是说没办法通过后处理来设定,比较麻烦。
这显然是不对的,后处理必须可以的,一次性满足所有愿望也只是因为没人写个神奇的函数而已。于是我就动手写了个set_font
的函数。
假设我们有下图:
library(ggplot2)
d <- data.frame(x=rnorm(10), y=rnorm(10), lab=LETTERS[1:10])
p <- ggplot(d, aes(x, y)) +
geom_text(aes(label=lab, color=lab), size=10) +
geom_text(aes(y, x, label=lab), size=3)
5s无缘无故突然就自带3D效果,可是苹果没送我3D眼镜啊!做为一个果粉,自从乔帮主离去之后,对苹果是越来越无爱了。
anyway,对于这部陪伴许久的手机,还是要纪念一下的。
《按地理位置分面》一文最后我埋了个伏笔,写到最后的时候,我想到的是可以拿来画个元素周期表,但懒得搞,在《ggplot2分面之像素艺术》一文里用一只火鸡展示了用图来拼像素画的思路,回应了前文的伏笔。今天继续展示一个像素画,为了纪念我的iphone5S,当然我要画个苹果🍎出来。
这里的图,用的是emoji来画,如果你还不会用emoji来画图装逼,赶紧戳《看完此文, 你也能够大开脑洞, 上升逼格》。然后用geofacet
来拼出像素画,这个时候,你应该想到可以拿来拼你的照片,画个某个形状的照片墙了。
陈同的‘生信宝典’公众号出了篇《R语言学习 - 富集分析泡泡图》,搞个shell脚本,一步绘图。讲了这个脚本可以适用于clusterProfiler和其它软件的富集结果。
浑身都是硬伤,我都不想吐槽,但由于作者邀请我提点,那就吐槽模式全开。
一个command出图,小白已经哭晕
从出的图看,应该是ggplot2画的(就算猜错,要吐槽的依然正确),小白在web-server上做了分析,存结果为xls文件,拿你这脚本,一跑报错。读xls文件(别告诉我你跟用户说读xls但其实是个tsv)和画图的依赖关系没解决!用户友好在那里?不要告诉我你的脚本0依赖,有个shell就能跑,即使我们熟悉的各种命令,很多都是独立程序,不关shell什么事。
所谓的一步出图
既然讲了clusterProfiler,那么clusterProfiler用户笑而不语了。我们用dotplot不也是一条命令出图,为什么要退出R,去跑你的shell脚本,这过程还得转换数据,存储数据。最后的这一步,是前面+N步为代价的。
在《ggplot2字体溢出的那点破事》一文里,我介绍了字体溢出的解决方案。在《wrapping labels in ggplot2》一文中介绍了怎么把长文本截断自动换行,这些都是非常常见的问题,最近关于溢出就又有人提问了:
在《ggimage:ggplot2中愉快地使用图片》一文中,我展示了「嵌套式绘图」,中间生成了多个饼图,再用这些产生的饼图用于做图,绘制出饼图版的气泡图:
当时还通过每次只画一个州的数据,来演示制作动图: