gganimate|创建可视化动图,让你的表会说话

简介: gganimate|创建可视化动图,让你的表会说话

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/kKQ2670FBiDqVCMuLBL9NQ


介绍一个主要用于绘制动画的ggplot2的扩展包---gganimate包。

Hans Rosling的关于“New Insights on Poverty”的TED演讲绝对是对我影响最大的几个TED之一,原来数据可以这样展示,,,可视化可以这样炫,,,故事可以这样讲...


下面尝试使用 gganimate 包和 gapminder 数据集,实现类似可视化过程。

加载R包,数据

#R包安装
install.packages("devtools")
library(devtools)    
install_github("thomasp85/gganimate")
install.packages("gapminder")
#加载
library(gganimate)
library(gapminder)
#查看数据
head(gapminder)
# A tibble: 6 x 6
 country     continent  year lifeExp      pop gdpPercap
 <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
1 Afghanistan Asia       1952    28.8  8425333      779.
2 Afghanistan Asia       1957    30.3  9240934      821.
3 Afghanistan Asia       1962    32.0 10267083      853.
4 Afghanistan Asia       1967    34.0 11537966      836.
5 Afghanistan Asia       1972    36.1 13079460      740.
6 Afghanistan Asia       1977    38.4 14880372      786.

数据集包括全球主要国家在1952-2007年的人均GDP增长、预期寿命以及人口增长的数据 。

二 ggplot2绘制

使用ggplot2绘制

theme_set(theme_bw())
p <- ggplot(gapminder,
 aes(x = gdpPercap, y=lifeExp, size = pop, colour = country)) +
 geom_point(show.legend = FALSE, alpha = 0.7) +
 scale_color_viridis_d() +
 scale_size(range = c(2, 12)) +
 scale_x_log10() +
 labs(x = "GDP per capita", y = "Life expectancy")
p

◆  

三 gganimate 动态


1. transition_time() 核心函数,添加动态

p + transition_time(year) +
 labs(title = "Year: {frame_time}")

2 按需设置

1)添加小尾巴

p + transition_time(year) +
 labs(title = "Year: {frame_time}") +
 shadow_wake(wake_length = 0.1, alpha = FALSE)

2)原数据做背景

p + transition_time(year) +
 labs(title = "Year: {frame_time}") +
 shadow_mark(alpha = 0.3, size = 0.5)

 

参考资料

https://www.datanovia.com/en/blog/gganimate-how-to-create-plots-with-beautiful-animation-in-r/

TED:https://www.ted.com/talks/hans_rosling_the_best_stats_you_ve_ever_seen?language=zh-TW

相关文章
|
6月前
|
数据可视化
R语言多图合成:优雅地在一个画布上展示多个图形
【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
|
1月前
|
人工智能
EDTalk:只需上传图片、音频和视频,就能使图片中的人物说话,情感表情与音频情绪高度统一
EDTalk 是上海交通大学与网易联合研发的高效解耦情感说话头像合成模型,能够独立控制嘴型、头部姿态和情感表情,适用于多种应用场景。
121 26
EDTalk:只需上传图片、音频和视频,就能使图片中的人物说话,情感表情与音频情绪高度统一
|
Web App开发 移动开发 前端开发
移动端图片操作(二)——预览、旋转、合成
在上一节中已经提到了预览,预览可以通过data: URL格式或URL对象。
移动端图片操作(二)——预览、旋转、合成
|
机器学习/深度学习 人工智能 JavaScript
一键生成人脸像素图,还能上传到动森!这个项目很好玩
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 日本独立开发者 Sato 曾因阿斯伯格综合征辍学离职,后来自学 AI 开发 AI Gahaku 项目(AI 大师级画家),在日美引起轰动,10 天覆盖百万用户。
一键生成人脸像素图,还能上传到动森!这个项目很好玩
如何利用ps工具,裁量咱的素材小图标和如何获取到大小合适的素材图标呢(各自图标素材集中于一张png图片上)
如何利用ps工具,裁量咱的素材小图标和如何获取到大小合适的素材图标呢(各自图标素材集中于一张png图片上)
194 0
如何利用ps工具,裁量咱的素材小图标和如何获取到大小合适的素材图标呢(各自图标素材集中于一张png图片上)
|
数据安全/隐私保护 iOS开发
ios 图片合成 处理合成模糊 水印 模板图片合成
今天要项目中要用到图片合成,所以看了下网上的资料和系统 API 图片合成可以用到很多的地方  添加水印   二维码生成的模板合成图片  p.p1 { margin: 0.0px 0.0px 0.0px 0.
1400 0
|
9月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台常见问题之视频封面输出的图片会出现过曝如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
机器人 语音技术
神器 | 文本转语音,直接可以合成多人多风格音频了!
为了适应更多的音频使用场景和需求,近期我们将文本转语音服务进行了升级,全新的功能将成为你配音工具的不二之选。
518 1

热门文章

最新文章