generate biobabble banner using ggimage
制作了一个banner,用来插入到文后,方便阅读到最后的时候,直接扫描关注。
这图当然用PS一下就可以得到,无非是拼图和加点文字。但做为天天写代码画图的人来说,必然是要纯代码来产生的,而且做科学的人,讲究自动化、可重复性。
就像有些人不理解data scentist为什么讨厌excel一样,觉得无非是工具,没什么好搞阵营的。试想一下,一个分析流程中间有一步要用到excel,需要人工去点点鼠标,这对于讲究自动化、可重复性的data scientist来说是不可接受的。
加载中文字体
为了打几个中文字,需要先加载字体,这里我用showtext。
require(showtext)
font.add("heiti", "/Library/Fonts/华文黑体.ttf")
showtext.auto()
读图
两个图,一个是logo,一个是二维码,分别用EBImage读入
require(EBImage)
require(grid)
gc <- rasterGrob(image=readImage('gc.png'))
page <- rasterGrob(image=readImage('biobabble_page.png'))
图上嵌图
这里用我自己写的ggimage包的geom_subview来嵌图,然后无非打几个字,设一下字体。
require(ggimage)
pg <- ggplot(d=data.frame(x=c(0,10), y=c(0,5)), aes(x, y)) + geom_blank() + coord_fixed()
pg <- pg+geom_subview(gc, x=2.5, y=2.5, width=5.1, height=5.1) + geom_subview(page, x=7.5, y=2.5, width=4.8, height=4.8)
pg <- pg+theme_void() + labs(title="长按二维码关注biobabble", subtitle="欢迎分享朋友圈",caption='guangchuangyu@gmail.com') + theme(title=element_text(family="heiti", size=20))
ggsave(pg, file="biobabble_banner.png", width=8, height=5)
于是产生下图: