查看原文
其他

纯代码生成banner

2017-04-05 Y叔 biobabble

制作了一个banner,用来插入到文后,方便阅读到最后的时候,直接扫描关注。

这图当然可以用PS得到,无非是拼图和加点文字。但做为天天写代码画图的人来说,必然是要纯代码来产生的,而且做科学的人,讲究自动化、可重复性。

就像有些人不理解data scientist为什么讨厌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来嵌图(是否记得这包的宝可梦图层?geom_pokemon: 使用pokemon画图),然后无非打几个字,设一个字体。

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)

于是产生下图:

长按会出来历史页面:

可以直接分享到朋友圈哦,不信您试试看(求分享,请看我真诚的眼神🐶)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存