R语言动态图可视化:如何、创建具有精美动画的图

本文展示如何用R语言动态图可视化:如何、创建具有精美动画的图。

由Kaizong Ye,Sherry Deng撰写

如何用R语言创建具有精美动画的图的例子。

 演示数据集

×

最近二十年来,随着动态图数据的大量产生,动态图可视化研究也得到了长足的发展。人们设计了许多可视化技术,用于支持不同种类的探索任务。接着,为了比较不同技术的优劣,人们又并发展了相应的评价方法。在此过程中,人们也将动态图可视化技术运用于解决一系列实际问题。Beck等人在今年EuroVis的Start of the Art Report环节报告了一篇综述论文[1],总结了现有的动态图可视化研究。他们共计考察了129篇相关论文,将它们大致分为技术类、评价类和应用类。他们随后对以上三方面研究进行详细的归类整理,并在最后展望了未来的研究方向。

在论文中,Beck等人将可视化技术分为动画技术(Animation)和时间轴技术(Time line)。


动画技术是一种直观的可视化技术。它主要基于点边图(Node link diagram)表示。因此,这类技术考虑的主要问题是,如果为每一个时间步的图选择一个好的点布局(Node layout)。根据考虑的图本身特性的不同,点布局算法又可以分为通用性算法和特殊算法。通用性算法可以处理所有类型的动态图数据。这类算法所考虑的一个核心问题是如何保持思维导图(Mental map)。也就是说,如何使得每个时间步的图有一个美观和容易理解的布局,同时相邻时间步的图布局又要尽可能相似以方便用户追踪点的移动。特殊算法往往针对特殊的数据,通常可以达到一些特殊的要求。比如有一类图数据,其中节点之间不仅有相互联系,节点本身还存在一个层级组织关系。也就是说,有些节点被看做是属于同一类。这类图数据成为组合图(Compound graph)。在动态组合图的可视化中,一个重要需求是保证同一类的节点始终在一起,并且当时间切换时,同一类节点形成的闭包的位置需要大致保持不变。有一些特殊的算法致力于解决这类问题,例如Dynamic GMap [2]。

相比而言,时间轴技术不那么直观,但它更侧重于分析时变特性。它既可以使用点边图表示,也可以使用矩阵(Matrix)表示。使用点边图表示的技术,通常会将每个时间步的图重叠(Superimpose)或并列放置(Juxtapose)。也有不少技术会将点边图和时间轴进行更加紧密的结合(Integrate),如图2所示。例如,最右侧的图中显示的是Massive Sequence View技术 [3],其中横轴是时间轴,每行表示一个节点,两行之间的连线表示一条边。这类技术给予了用户很大的设计自由度,通常支持很高精度的时间展示,但是直观性可能有所不足。


基于矩阵表示的时间轴技术,其时间信息要么通过矩阵的重叠或并置表示,要么通过在矩阵的每个小格内嵌入时间轴来表示。这类方法直观性最差,主要侧重于边模式的时序比较。

Beck等人认为,动态图可视化在未来有以下研究方向:

  • 发展评价方法,例如,何时需要保持思维导图,需要保持到什么程度?

  • 提高可视化伸缩度,例如,如何支持更多的时间步骤?

  • 设计混合表现技术,例如,是否可以混合矩阵表示和动画技术?

  • 支持更多类型的数据,例如,如何展现带不确定信息的动态图数据?

  • 发展交互技术,例如,如何标记和编辑动态图数据?

  • 应用于更多类型的数据

[1] Fabian Beck, Michael Burch, Stephan Diehl, and Daniel Weiskopf. The State of the Art in Visualizing Dynamic Graphs, in Proc. EuroVis State of The Art Report, 2014.

[2] Yifan Hu, Stephen G. Kobourov and Sankar Veeramoni. Embedding, Clustering and Coloring for Dynamic Maps, in Proc. IEEE PacificVis, pages 33-40, 2012.

[3] Stef van den Elzen and Danny Holten and Jorik Blaas and Jarke J. van Wijk. Reordering Massive Sequence Views: Enabling Temporal and Structural Analysis of Dynamic Networks, in Proc. IEEE PacificVis, pages 33-40, 2013.



静态图


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

基本

状态之间的过渡长度将设置为与它们之间的实际时间差相对应。

标签变量:frame_time。给出当前帧所对应的时间。

创建面:

让视图跟随数据在每帧中

​ 

静态图

​ 

让数据逐渐出现

  • 按天显示(x轴)

在数据的几个不同阶段之间进行转换

数据准备:

创建平均温度的条形图:

​ 

  • transition_states():

​ 

  • enter_grow()+ enter_fade()

保存动画

如果需要保存动画以备后用,可以使用该anim_save()功能。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498