专栏首页R语言交流中心R语言实现动画效果

R语言实现动画效果

今天给大家介绍一个在R语言中实现gif动图的绘制的包gganimate。此包是ggplot的一个扩展功能。所以在载入的时候会载入ggplot包。首先,我们看下需要安装的包:
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指的是动画最后是否循环回去。

我们直接看个实例:

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)
anim<- p +  transition_states(Species,transition_length = 2, state_length = 1)

anim

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

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

我们直接看个实例:

anim + ease_aes('cubic-in-out')# Slow start and end for a smoother look

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

anim + ease_aes(y= 'cubic-in-out') # Sets special ease for y aesthetic

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

anim + ggtitle('Nowshowing {closest_state}', subtitle = 'Frame {frame} of {nframes}')

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

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

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参数进行动画格式的改变:

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

animate(anim + enter_fade() +exit_fly(y_loc = 1), renderer = av_renderer())

本文分享自微信公众号 - R语言交流中心(R_statistics),作者:one sand

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言实现单细胞测序的表达矩阵复原

    首先要下载所需要的示例数据,下载地址:https://storage.googleapis.com/linnarsson-lab-www-blobs/blobs...

    一粒沙
  • R语言获取ArrayExpress数据库数据

    大家可能有一部分人对ArrayExpress数据库是比较熟悉的,当然也有人可能没怎么听说过。今天我么主要介绍一个可以获取ArrayExpress数据库数据的R包...

    一粒沙
  • R语言之包络分析包的简介

    DEA是一个线性规划模型,表示为产出对投入的比率。通过对一个特定单位的效率和一组提供相同服务的类似单位的绩效的比较,它试图使服务单位的效率最大化。在这个过程中,...

    一粒沙
  • 沧源给留守儿童的“特殊礼物”—云端陪伴

    ? 今天是六一国际儿童节,学校里都在组织各种缤纷多彩的活动,家长们也在琢磨送孩子什么样的节日礼物。 最近,我听到了一个6岁小男孩的儿童节愿望,有点心酸。这个...

    腾讯智慧教育
  • 【独家】朱凯华:智能搜索和对话式OS最新技术全面解读(65PPT)

    【新智元导读】百度度秘事业部首席技术官朱凯华日前在上海计算机学会做了题为《AI赋能的搜索和对话交互》的报告,主要介绍了现在的百度搜索及度秘“DuerOS”系统。...

    新智元
  • 【原】Spark之机器学习(Python版)(一)——聚类

    kmeans聚类相信大家都已经很熟悉了。在Python里我们用kmeans通常调用Sklearn包(当然自己写也很简单)。那么在Spark里能不能也直接使用s...

    Charlotte77
  • Marp —用Markdown编写PPT

    Marp 是一个用 Markdown 编辑幻灯片的跨平台免费软件,用户在左侧区域编辑 MD 文本,可在右侧即时显示效果。软件支持多种主题配色,在幻灯片内可插入 ...

    掌上编程
  • Python 图片与pdf相互转换

    py3study
  • RPA项目试点上线阶段需注意的2个问题

    在完成基于RPA的新的业务流程测试、优化和改进之后,RPA机器人的实施就进入试点上线阶段。

    蕉黄
  • 在PythonAnyWhere上部署Django项目

    在PAW(PythonAnyWhere)上创建免费beginner账户,网址为: https://www.pythonanywhere.com/pricing...

    晓歌

扫码关注云+社区

领取腾讯云代金券