timevis网站可视化案例导读

上次博客我分享了一些可视化案例集萃。这些网站不仅图文并茂内容详实,而且其中很多其本身就是很好的数据探索可视化作品。学习这些网站的设计思想和制作技术,对我们加深数据可视化理解很有裨益。今天就其中特定数据类型相关的网站做个导读,以方便各位读者发掘可视化领域的各类金矿。

 

时序数据可视化案例综述http://vcg.informatik.uni-rostock.de/~ct/timeviz/timeviz.html

A Visual Survey of Visualization Techniques for Time-Oriented Data
by Christian Tominski and Wolfgang Aigner

网站简介:

此网站在我以前的博客中介绍过,是德国的两位大咖Christian TominskiWolfgang Aigner创建的,主要用以推销他们的教材Visualization of Time-Oriented Data。此书由可视化领域的泰山北斗Ben Sheiderman教授做序。此网站制作较早,只有115篇文章,最新的论文只到2013年。交互性也没有瑞士林奈大学ISOVIS小组的网站好。但考虑到时序数据可视化应用的重要性和广泛性,这个网站在我每次写论文的时候都要打开看看。

该网站本身也是很好的探索类可视化作品,以便于读者检索感兴趣的论文为目的。其主体部分是各个论文的缩略图,可以点击放大查看详细。左侧是导航面板,用以导航/过滤论文。因为此网站建立年代较早,所以较为简陋,缺少时间轴过滤器,不能按文章新旧排序。其分类选项也较为简单,都是从时序数据的特定出发,罗列如下:

  • 数据参考框架:通用,时空结合
  • 数据变量个数:单一变量,多个变量
  • 时间排列方式:线性排列,循环排列
  • 时间基元:时间点,时间区间;
  • 时间的可视化映射方式:静态图形,动态动画
  • 可视化呈现的维度:2D,3D

此网站的实现技术非常简单,是HTML+CSS+JS做的静态网站。其中主体逻辑都是基于jquery实现的。

网站导读:

1.什么是时序数据

时间是一个非常重要的维度。依照时间顺序取得的一系列观测值或事件,被称之为时间序列数据(time-series data)或时变数据(temporal data)。时序数据这一数据类型在在科学、工程、经济等人类社会的各个领域都广泛存在。如网络日志信息、人口及经济普查数据、公司运营数据、股票交易数据、各类传感器网络的监控数据等高维多元数据集,时序数据都占有相当大的比例。此外,带有内在排列顺序的顺序数据(如基因组测序数据、文本数据等),也都可以映射到时间轴上进行处理。

由于时序数据分布如此广泛和重要,故而数据分析和可视化领域的专家对其的关注由来已久。早期的可视化领域专家如Ben Sheiderman和 Mackinlay[101]将时序数据作为7种基本数据型之一来研究。他们认为时间和时序数据是两个不同的概念,时间本身是一个固有的数据维度,揭示了数据的趋势、可识别的模式与关系,是时间使得时序数据成为了一个特殊的数据类型。这种特殊性反映在如下几个方面:

  • 时序数据可以给定时间点或时间间隔。虽然时间间隔可以很容易地通过两个时间点定义,但还是增加了时序数据的关系复杂度。
  • 时序数据,其数据元素具有顺序相关性,即后一时刻的值受到前一时刻的值影响。并且这种影响随着时间间隔距离的扩大而减小。而普通数据类型与时间无关。
  • 时序数据的采样受到时间单位的约束,而时间单位来自于历法。我们经常使用历法来解释和理解时间,然而历法的结构很复杂,例如在公历的一个月的时间有28天到31天的变化,一个星期可以重叠两个不同的月份。历法带来的复杂的时间单位体系,要求许多时序数据的获取与分析,要在不同的时间精度上进行。
  • 人类常常对时间为导向的数据进行循环结构的假设,例如世界历史中各国兴衰更替的变化,交通流量随每日时间的变化,或失业率随季度的变化。在许多情况下,数据分析师需要筛选出这样的特征以分析长期趋势。
  • 分析师对不在同一段时间区域中的发展趋势之间的相互对比感兴趣。对于这样的比较,分析通常是根据一些定点事件,聚焦于其相关时间。

2.时序数据可视化的目标

数据可视化领域的早期专家Aigner等人在其出版的时序数据可视化专著《Visualzation of Time-Oriented Data》中,总结了超过100种可视化技术,其中既有通用的技术,也有是针对特定问题设计的研究模型。对于这么多种时序数据可视化技术,如何对其进行归纳总结呢?从“可视化技术能给我们分析时序数据带来什么帮助”这个角度入手,是个不错的思路。从用户任务的角度出发,数据可视化有如下五种基本目标:查询、分类、聚类、模式发现和预测。具体到时序数据分析上,可视化可以帮助我们做如下几类分析任务:

任务内容 举例说明
快速检索数值 可以快速检索某个感兴趣的时间点的数据值;
考察数值 探索某一时序数据维度在某一时间范围内的极大值、极小值;

考察某两个数值在一条时序数据序列上出现的时间先后关系;

统计差异性 考察某一时序数据维度中某个数据分布的匹配性;
循环规律检测 序列中相似子片段的检测,及周期性规律发现;
模式发现 某个数据元素在某一时序数据序列中出现的频率;

查询数值上升或下降的时间范围;

模式比较 比较两条时序序列的相似性;

比较两条时序数据序列在某个兴趣时段的关系;

以上这个时序数据可视化的分析任务,此网站中没有进行专门的分类。但一般而言,考察数值是可视化的基本功能,统计差异性发现和循环规律检测是时序数据可视化常见任务,模式发现和模式比较是较为高级的探索性可视化技术的任务。在后续对案例的考察中,可以自己思考一下每个案例重在解决哪种任务,对我们学习设计案例很有帮助。

3. 时序数据可视化的设计模式

早在计算机出现很早之前,可视化就被用于呈现时序数据。Aigner等人在其专著中,从历史发展的角度总结了在各行各业中出现的时间可视化经典方法:

 

在浏览这个网站时,我们最容易了解的是时序数据可视化的设计模式。按照时间的映射方式,这些可视化技术分为两类:静态图形,动态动画。然而由于动画的优势和缺点都在于其完全吸引了用户的注意力,因此用户观察非动画的其他视觉通道会变得困难。目前可视化领域的主流观点是,由于人类认知的局限性,要审慎看待动画方式可视化时变数据的可行性与表现力。在这个网站中,纯粹用动画方式展示时间的案例,在115个案例中只有7个,可谓例证。

在以静态图形为可视化的案例中,按时间的排列方式,可划分为线性排列或循环排列。这是一种比较简单的分类方式。我个人喜欢按照表达时间的视觉变量来划分,大致可以有:位置(直角坐标系)、角度(径向坐标系)、色彩、大小等。

线性方法最为常见,其通常将时间映射为时间轴,其他维度可以映射成折线、柱形、面积、色彩等。典型的例子如主题流图(ThemeRiver),可认为是面积图的一种扩展,使用了“河流”的可视化隐喻来表达时间。其主要依赖宽度属性表示信息数量,颜色属性表达数据属性,既可以表达信息流的宏观趋势,也可以表达细节,特别适合帮助确定与时间相关的各个主要事件之间的内容与联系。此可视化设计后来在文本可视化领域得到极大普及。

Stacked Graphs,一个线性时间可视化案例。timeRiver的一种变体,适合呈现多个时序变量的变化趋势。Byron, L. & Wattenberg, M.: Stacked Graphs – Geometry & Aesthetics. IEEE Transactions on Visualization and Computer Graphics, Vol. 14, No. 6, 2008.

循环排列,有许多种布局方法,例如多个周期用多个小图表示的栅格布局法,还有径向布局法。径向布局的例子如下图:

3D图表,与2D图表相比,虽然画面冲击力较强,但是由于透视原因会遮挡或隐藏部分信息,因此并不如2D图表直观,故而不是可视分析领域的主流表现方式。但三维方法可以表现高维时序数据,例如Tominski等人提出的3维时间隧道 Kiviat Tube,可认为是平行坐标以时间轴为中心建立的3维扩展,其每个时间点的二维切面都是一个星形图,如图 3.1所示。

 

时序数据可视化方式,可分为制作时序流图的同学很有必要参考一下这个网站内容。