搜索
查看: 616|回复: 0

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

[复制链接]

10

主题

11

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2019-12-6 10:04:14 | 显示全部楼层 |阅读模式
更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号。

介绍一个主要用于绘制动画的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)
  
参考资料
◆ ◆ ◆  ◆ ◆
精心整理(含图版)|你要的全拿走!有备无患 (R统计,ggplot2绘图,生信图形可视化汇总)

【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】



[/url]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-7-13 10:45 , Processed in 0.025923 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.