r语言HTML显示动图,gganimate:构建R语言可视化gif动图

原标题:gganimate:构建R语言可视化gif动图

作者:鲁伟,热爱数据,坚信数据技术和代码改变世界。R语言和Python的忠实拥趸,为成为一名未来的数据科学家而奋斗终生。个人公众号:数据科学家养成记 (微信ID:louwill12)

gganimate简介

gganimate是一款基于ggplot2的动态可视化扩展包,简单就是将ggplot2绘图对象转为gif动图的形式,这对于一些统计分析原理和可视化展示尤为重要,可以让抽象的数理理论更加形象化,也便于理解和方便课堂教学。 gganimate包的安装本身没有什么麻烦,但是这个包脾气倔,需要本地提前安装好ImageMagick这个软件,ImageMagick是一款功能强大且开源的图片处理和开发的软件包,安装的时候总是莫名其妙的报错,小编废了好大周折才搞定,能不能一次性安装成功还得看运气。 windows系统下ImageMagick下载地址如下:

ImageMagick

gganimate的安装如下:

devtools::install_github("dgrtwo/gganimate")

就像刚刚提到的那样,gganimate的本质思想没什么特别的,就是将ggplot2对象进行动态化,核心函数与包同名,就是gganimate(),绘图思想与ggplot2同理,gganimate()特殊之处在于在除了为绘图提供x,y以及color,size这样的美学映射之外,还必须提供一个所谓的frame映射,具体怎么理解这个frame映射,还得拿例子说。比如说我们想绘制某国人口随时间变化的一个ggplot2动态图,那么这个时间就是frame映射。话不多说,且看下面的绘图实例。

绘图实例

先加载一些必备包,这里我们使用的是gapminder的包中的全球主要国家在1952-2007年的GDP增长、人口变化以及预期寿命等方面的数据。现在我们想用gganimate探索一下各大洲各主要国家GDP增长、预期寿命和人口增长是如何随时间变化的。

library(gapminder)

library(ggplot2)

theme_set(theme_bw())

f4a88c810f543d66bcdd00429d8b7e56.png

先利用ggplot2绘制静态图(不带时间的frame):

g

geom_point() +

scale_x_log10()

然后利用gganimate()函数进行动态化:

library(gganimate)

gganimate(g)

958dff3e8cf27b80b8f5319b85422ba9.gif

我们也可以将绘制出来的gif动图直接以相应的格式进行输出保存到本地:

gganimate(g,"output1.gif")

当然,除此之外,我们也可以根据个人喜好对动图做一些个性化的设置:

g2

geom_point() +

geom_point(aes(frame = year), color ="red") +

scale_x_log10()

gganimate(g2)

57ef08710ad9d79df386971d7f5fc41a.gif

有时候还可以运用一些统计方法:

g3

geom_point() +

geom_smooth(aes(group= year), method ="lm", show.legend = FALSE) +

facet_wrap(~continent, scales ="free") +

scale_x_log10()

gganimate(g3)

47977a5fdd27aa85a00968be96b90e54.gif

用于现场的统计教学也未尝不可,下面动图展示了局部加权回归的散点平滑法:

d4498136c138f1d102df0be4885df597.gif

这样的动态化演示图,是不是能帮助大家更好的学习统计学?

参考资料:

https://github.com/dgrtwo/gganimate

https://simplystatistics.org/2017/08/08/code-for-my-educational-gifs/返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值