本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/kKQ2670FBiDqVCMuLBL9NQ 更多关于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)
参考资料 https://www./en/blog/gganimate-how-to-create-plots-with-beautiful-animation-in-r/ TED:https://www./talks/hans_rosling_the_best_stats_you_ve_ever_seen?language=zh-TW ◆ ◆ ◆ ◆ ◆ 精心整理(含图版)|你要的全拿走!有备无患 (R统计,ggplot2绘图,生信图形可视化汇总) 【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】
|