原标题:哈佛教授公开R语言源码,教你用R制作gif动图
作者Rafael Irizarry是哈佛大学以及the Dana-Farber Cancer Institute的应用统计教授,他专注于研究基因组学,并且教授数门数据科学课程。在本文中他公开了自己授课时所使用的gif动图的R语言源码,同时也对涉及的几个话题进行了简单的论述,对于希望了解数据科学原理、如何使用R语言来进行可视化的读者都有所助益。
本文长度为1800字,建议阅读4分钟。
本文授权转自数据派THU(ID:DatapiTHU)
作者 | Rafael Irizarry
翻译 | 贾琳
在日常教学的过程中,我有时会用动画来形象地解释概念,并且通过 @rafalab账号(https://twitter.com/rafalab)在社交媒体上分享。
John Storey最近问我是否可以公开这些源代码。由于我不甚有条理,而且这些动画都是灵机一动想出来的,所以之前这些代码分散在几个不相关联的文件中。John的请求促使我把这些代码整理在一起发布在这里。
所有的gif动图都是用R语言绘制的数张图片的叠加。在代码中你可以发现,我用几种不同的方法将单独的图片转化成动态gif图。
第一种方法(不推荐)是将图片文件存储下来,然后调用ImageMagick转化工具(https://www.imagemagick.org//index.php)。
在R环境下,我现在使用的方法是animation包的saveGIF函数,这是通过读者Yihui Xie在我simplystats博客下面的评论学习到的。当用ggplot画图时,我会使用David Robinson的gganimate包(https://github.com/dgrtwo/gganimate)。
最后一种方法是我在加特效(例如调相)时会用到的:在线Animated GIF maker(https://ezgif.com/maker)。
以下就是这些gif动图的源代码,我大致按流行程度排序。因为代码是很着急写出来的,请不要过于苛责我。事实上,你可以随意批判,这就是我们学习的方式。
辛普森悖论
这张gif阐述的是辛普森悖论:我们看到X变量和Y变量有很强的负相关关系。不过,一旦我们用一个混杂因素Z变量进行分层,用不同颜色来表示Z,每一层中的相关性就会转化为正相关。这里的数据是虚构的,不过假设说X代表学生参加辅导的次数,