前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现动画效果

R语言实现动画效果

作者头像
一粒沙
发布2020-04-14 17:08:41
1.9K1
发布2020-04-14 17:08:41
举报
文章被收录于专栏:R语言交流中心R语言交流中心
今天给大家介绍一个在R语言中实现gif动图的绘制的包gganimate。此包是ggplot的一个扩展功能。所以在载入的时候会载入ggplot包。首先,我们看下需要安装的包:
代码语言:javascript
复制
install.packages("gifski")
install.packages("magick")#linux系统需要下载此包
install.packages("ggplot2")
install.packages("av")
install.packages("gganimate")

接下来我们看下包中主要的函数:

1.transition_states(states, transition_length = 1, state_length = 1,wrap = TRUE) 生成渐变的动画。其中主要参数:states指的是进行转化的各组数据;state_length指的是每个动画暂停的相对速度;transition_length各组之间转化的相对速度;wrap指的是动画最后是否循环回去。

我们直接看个实例:

代码语言:javascript
复制
library(gganimate)
#>Loading required package: ggplot2
 
# We'llstart with a static plot
p <-ggplot(iris, aes(x = Petal.Width, y = Petal.Length)) + geom_point()
 
plot(p)
代码语言:javascript
复制
anim<- p +  transition_states(Species,transition_length = 2, state_length = 1)

anim

2.ease_aes(default = "linear", ...) 渐变动画转化过程中的转化样式设置。其主要就是转化方式的选择:

其中需要function和modifiers配合使用,modifiers主要是设置转化的形式,in代表按原样式;-out代表样式反转。

我们直接看个实例:

代码语言:javascript
复制
anim + ease_aes('cubic-in-out')# Slow start and end for a smoother look

当然也可以进行对单个坐标轴的转化:

代码语言:javascript
复制
anim + ease_aes(y= 'cubic-in-out') # Sets special ease for y aesthetic

3.ggtitle(label, subtitle = waiver()) 动态标签。这个主要是增加每一帧的动画的注释。我们直接看下实例:

代码语言:javascript
复制
anim + ggtitle('Nowshowing {closest_state}', subtitle = 'Frame {frame} of {nframes}')

4.转化的一些定义好的行为,如下:

我们就不多做解释,直接看下实例:

代码语言:javascript
复制
anim <- ggplot(iris, aes(x =Petal.Width, y = Petal.Length)) +  geom_point(aes(colour = Species), size = 2) +  transition_states(Species, transition_length =2, state_length = 1)
 
anim + enter_fade()+ exit_shrink()

当然,除了gif,还可以通过修改animate()中的renderer参数进行动画格式的改变:

这样就可以直接保存为视频文件,我们直接看下实例:

代码语言:javascript
复制
animate(anim + enter_fade() +exit_fly(y_loc = 1), renderer = av_renderer())
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档