作家
登录

哈佛教授公开R语言源码,教你用R制作gif动图

作者: 来源: 2017-08-29 11:03:38 阅读 我要评论

在日常教授教化的过程中,我有时会用动画来形象地解释概念,并且经由过程 @rafalab账号(https://twitter.com/rafalab)在社交媒体上分享。

所有的gif动图都是用R说话绘制的数张图片的叠加。在代码中你可以发明,我用几种不合的办法将零丁的图片转化成动态gif图。第一种办法(不推荐)是将图片文件存储下来,然后调用ImageMagick转化对象(https://www.imagemagick.org/script/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代表学生参加指导的次数,Y代表九年级的测验分数,然后再用八年级的测验分数Z来对学生进行分层,我们也会发明如许的现象。

这张动图仅用三张图片构成。我用RStudio的Export功能将它们把存下来,然后用Animated GIF maker(https://ezgif.com/maker)来制造gif。以下是这三张图片的代码:

局部加权回归散点腻滑法(Loess)

我分享的第一个教授教化动图是为了解释局部加权回归散点腻滑法(Loess)的道理。具体来说,我们对于每一个自变量,比如x0,都让其对任何一个邻近点有正的加权值,用加权回归拟合一条线,保存经由拟合所得的结不雅,然后移动向下一?点。

这里的数据来源是某个基因芯片实验。图中所示的是MA图,即比例对数与对数平均值之间的关系。我用animation包来保存gif动图。

预期寿命 vs 生育率

这个gif动图是复制Hans Rosling (https://en.wikipedia.org/wiki/ Hans_Rosling)在他的演讲“关于贫穷的新发明”(New Insights>

感激gganimate包,画这个图应用的代码异常简单。

结合国选举模式

这里,我们应用Erik Voeten和Anton Strezhnev供给的结合国选劫数据来阐释距离的概念。

以下是代码。整顿数据的代码是由David Robinson(https://twitter.com/drob)供给的。你会看到我们将随时光变更的距离进行了腻滑处理,大年夜而避免一些点跳动范围过大年夜。

在以前的很长一段时光里,我都认为很难解得为何随机丛林作为一种基于树的算法,却可以或许产生腻滑的猜测。这里的gif图赞助我懂得了原因。我用的是2008年总统选举的数据库,因为我认为该数据的趋势总体是腻滑的,然则有几个尖利的边,就连局部加权回归散点腻滑法都很难猜测。须要留意的是,我们只有一个影响身分,这个gif并不克不及展示出随机丛林的另一个重要特点:随机的特点拔取可以削减树与树之间的相干程度。

John Storey比来问我是否可以公开这些源代码。因为我不甚有层次,并且这些动画都是灵机一动想出来的,所以之前这些代码分散在几个不相接洽关系的文件中。John的请求促使我把这些代码整顿在一路宣布在这里。

你可以看到我在代码中应用的方法是传统的、我并不推荐的方法:保存所有的图片文件然后调用体系指令转化。


  推荐阅读

  智能零售柜赚钱吗?蹲点50小时告诉你

我们将“无人自助”范畴分为两种:o商品出售,也被称之为“智能零售”,如主动售货机、无人便利店。o办事出租,也被称之为“共享办事”,如迷你KTV、自助健身仓。在系列报道之二中,我>>>详细阅读


本文标题:哈佛教授公开R语言源码,教你用R制作gif动图

地址:http://www.17bianji.com/lsqh/36995.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)