高级绘图技能:基于R语言的时间序列数据动态展示

Posted 百味科研芝士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级绘图技能:基于R语言的时间序列数据动态展示相关的知识,希望对你有一定的参考价值。


各位 朋友,大家好。 我是Flyman! 关于数据可视化我们已经跟大家分享了不少话题,我们也推出了相应的教程,今天给大家聊一下如何根据时间变化进行动态数据可视化,所谓动态数据数据可视化,实际上就是根据某个变量分别进行交替可视化,某一个时间点只显示一类的数据的图形,那我们今天所说的主题就是-让图动起来。 首先看一下效果图,所有的动图都是会保存成gif文件的。


下面进入正题,基于R语言操作这里使用的是R包gganimate:


高级绘图技能:基于R语言的时间序列数据动态展示

安装并加载包,关于包的安装,已经讲过多次,直接上代码:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

加载工具包和示例数据,这里我们采用gapminder中的数据集,数据集gapminder如下,该数据集是一共6列数据:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

采用ggplot画初始图形,横轴为gdpPercap一列,纵轴为lifeExp,采用scale_color_viridis_d进行了颜色搭配,scale_size设置点的大小范围:

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

图形动起来,采用transition_time函数,代表的就是按照一个变量进行变化显示图形,用于状态之间的相互过渡,注意transition_time后面的参数一般为数值型:

高级绘图技能:基于R语言的时间序列数据动态展示

保存成gif文件

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

分类动图显示,本例中可以按照不同的洲,分别进行动态展示:

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

显示先前的帧并逐渐衰减变化过程。通过shadow_wake函数可以设定动态图逐步变化的进程:

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

随时间逐步变化。我们还可以通过给定的时间维度逐渐显示数据,比如我们采用内置的城市空气质量数据,首先画一个折线图,如下。

高级绘图技能:基于R语言的时间序列数据动态展示


高级绘图技能:基于R语言的时间序列数据动态展示

接着我们想让他们随着月份时间动态画出折线,该如何完成呢?

通过借助transition_reveal函数,里面填充的Day参数即是上图绘制的时的x轴变量,表示将x轴数据慢慢展示

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示

以点状形式展示牵引数据点变化,需要加一个geom_point函数即可,如下:

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示

数据点还可以被保留,通过给geom_point函数增加一个参数

高级绘图技能:基于R语言的时间序列数据动态展示

结果如下:

高级绘图技能:基于R语言的时间序列数据动态展示

高级绘图技能:基于R语言的时间序列数据动态展示


注意一点:gif的保存,这里用的是anim_save函数保存。

Ok,今天的推文就到这,我们分享了如何使用gganimate工具进行图形动态化展示,希望能对大家有所帮助,最后,欢迎大家留言,有不正确的地方,也请大家留言指正。


高级绘图技能:基于R语言的时间序列数据动态展示

往期热点

高级绘图技能:基于R语言的时间序列数据动态展示



高级绘图技能:基于R语言的时间序列数据动态展示

高级绘图技能:基于R语言的时间序列数据动态展示

高级绘图技能:基于R语言的时间序列数据动态展示

高级绘图技能:基于R语言的时间序列数据动态展示

识别上方二维码添加小编微信,回复:入群,可加入百味芝士科研交流群。申请入群时请备注专业领域,单位或学校及姓名。

多点好看,少点脱发

以上是关于高级绘图技能:基于R语言的时间序列数据动态展示的主要内容,如果未能解决你的问题,请参考以下文章

R语言高质量绘图的10条tips

如何使用R语言circlize包绘制漂亮圈图

r语言hist函数怎么设置坐标轴刻度向内

生物信息学大数据分析与R语言绘图在线直播培训班

R语言boxplot绘图函数

R语言之数据分析高级方法「时间序列」