不知不觉中我已经介绍了很多R包,有学术上的ChIPseeker、treeio、ggtree、 clusterProfiler、 GOSemSim、seqcombo和MSnbase等,当然免不了有吐槽还有抄袭。有学R的和更新R包,也有桌面小工具,还有画图的ggplot2、怎么配色、嵌入图片(比如pokemon), 以及emoji作图,也有好玩的贴纸和装逼利器。
今天要介绍另外一个R包,magick,是R里面玩图片的利器,今天要讲的是在静态图片上加动态图片,这样我们平时画一些学术的图,就可以加点搞笑的动态元素上去,有利于在博客和公众号上装逼。
无非是给我一张静态图当背景,再来一张动态图加在上面,为了让代码可以重用,首先打包个小函数:
add_gif <- function(bg_file, gif_file, out_file, offset, bg_size="500", gif_size="150") {
library(magick)
p <- image_read(bg_file)
g <- image_read(gif_file)
g <- image_scale(g, gif_size)
background <- image_background(image_scale(p, bg_size), "white", flatten = TRUE)
frames <- lapply(g, function(frame) {
image_composite(background, frame, offset = offset)
})
animation <- image_animate(image_join(frames))
image_write(animation, out_file)
}
然后就可以来玩了,首先用上次讲到的dotplot做为底图,再从网上找一个动图,调用函数,bingo: