大数据可视化理论与案例分析
这是我参与「第四届青训营 」笔记创作活动的第二十天
1.定义
1.可视化概述
数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。
它是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。
2.数据可视化基本流程
一个可视化作品的诞生,要经历一系列流程,我们将其抽象成如下图所示的四个大的步骤。
第一步 : 数据处理(Abstract Data)
只有满足特定结构的数据才能做对应的可视化展现,而且为了达到好的可视化效果也需要对数据进行清洗、转换等操作。
第二步 : 可视化设计与表达(Visualization Design)
根据数据特征选择合适的展现模式,在此基础上通过合理的使用视觉编码,来定义最终的可视化展现内容。
第三步:可视化渲染(Rendering and Display)
将定义好的图形转换成为图像,展现给观众。
第四步:可视化交互(Interactivity)
单一的可视化结果并不能满足用户的多方面诉求,用户往往借助交互方式,进一步了解细节或者对数据进行筛选、聚合、分面等,对数据进行多方面的探索。
2.原理
1.数据
能被存储和处理的信息,都可以被视为数据。我们日常接触到的文本、视频、图像、账单等等都是数据。每一个种类的数据都是一个大的集合,由多条小的数据条目组成,称之为数据集(DataSet)。
数据集分为结构化和非结构化(比如文字、图像),数据可视化只能对结构化数据进行呈现。非结构化数据经过处理之后,可以转换为结构化数据,进一步进行可视化展现。比如文本,我们可以通过自然语言处理、机器学习、文本挖掘等多种手段将其转化为结构化数据。
2.数据与数据集分类
数据可以被分为以下五种类别:
- Items:具体的每一条数据
- Attributes:条目的每个字段的属性
- Links:数据之间的关系
- Positions:位置
- Grids:网格 数据集被分为以下五种类别:
- Tables:表格数据
- Networks & Trees:层次结构数据
- Fields:场数据
- Geometry:几何数据
- 其他集合类型:Clusters,Sets,Lists
一个数据集可以由一种或者多种数据类型组成,包含关系如下表:
3.数据集解构分析
1.表格
表格是使用行、列和单元格的概念来存储数据的结构,每一行是一条数据,每一列都有一个统一的属性定义。以下面学生信息表为例:
该表格有三条数据,每一条数据都有5个属性(Attribute),ID、Name、Age、Shirt Size、Favorite Fruit。
行列交叉的单元格里面就是具体的值(Value)。
2.多维表格
多维表格数据和普通表格数据组织形式上最大的不同的点在于key 的数量。通常一个普通表格的key 就是行号,比如3.1.1 的 学生信息表为例,“第2行的年龄7”这样的描述,我们是可以明确的知道描述的对象的名字是Basil,而且Basil 最喜欢的水果是Pear。 但是对于多维表格数据则需要多个key才能确定一个value。
下图所示的一个多维表格数据,我们通过简单的行号或者选取一个键都没办法确定一个明确的数据条目,比如我们想得到一个销售值,那么应该描述成为“ Timeid 为1,pid 11 的销售值为25”,更复杂的数据需要更多的键来组合定位。
将两个维度的数据聚合在一起就是一个 “面” ,第三个维度方向上多个面就形成了一个 “体”, 如上图右侧所示,这就是数据立方体基本概念 。
我们将每一个面平铺到表格中,就是一个数据透视表,如下图:
如上面表格,每个item 是一个普通表格,行号或者Time 都可以作为唯一的key。
3.网络和树
网络和树数据,核心概念就是“关系”。必须要显示的定义数据条目之间的关联关系才能绘制出网络图和树图。
上图左侧是比较常见的图数据的配置结构,每一个 node 就是一个 data item,node中的属性就是 attributes。 Edges 中定义的就是节点的关系,对应于 Links 。
4.场
场数据,用于描述磁场、电场、风场等数据,存储结构是网格(grid),每个网格中一般是向量、标量或者张量。
5.几何数据集
几何数据集是几何图形数据的几何,通常用来描述地理信息。
如地图,由多个几何图形拼装而成,在定义地图的数据中会定义具体的几何图形类型及位置信息。
4.属性分类
数据集中的数据条目都会包含一个或者多个属性(Attribute),属性分为分类(Categorical)和排序(Ordered)属性。排序属性又分为顺序(Ordinal)和定量(Quantitative)两种类别。
结合上图中的学生信息表,我们具体分析一下。第一列的 ID 数值是序号,数字类型,属于Quantitative 字段。第二列 Name 属于 Categorical 字段。第三列 Favorite Fruit 属于 Categorical 字段。第四列 Age ,数字类型 属于 Quantitative 字段。第五列 Gender ,性别属于 Categorical 字段。第六列 Shirt Size ,衣服尺寸虽然不是数字,但是它可以进行大小排序,属于 Ordinal 字段。
上面我们已经了解了数据集类型,数据集类型决定我们选择什么样的可视化形式来展现数据,具体到展现的细节,则是由属性(Attribute)来决定。
5.认知与知觉
从符号学层面来讲,人类将符号传递到大脑,随后对符号进行解码,根据大脑中的知识来得到符号具体表达的意义。
读取一张图片和接收其他信息一样,依赖我们已经掌握的知识(signifier),我们只能识别我们知道的事情(signified)。我们识别一个符号到它所要表达的意义,实际上需要一个转换“函数”,这个函数就是Code,也就是一个心理认知过程。
关于进一步的知觉感知的研究总结,我们可以抽象人们识别可视化的三个步骤:
- Perception of raw visual signals,e.g. color, shape, etc. 原始信号感知
- Pattern recognition 模式识别
- Reasoning and Analysis 推理分析
可视化设计的目标就是要在以上三个步骤中,缩短人类的认知过程,达到准确高效的传递信息的目的
编码
合理准确的可视化编码,可以提高人们在感知过程中各个步骤的速度和准确性
格式塔 理论 格式塔理论(Gestalt Laws)较为系统的对人类如何发现图形元素之间的相关性进行了全 面总结,被广泛的应用在了视觉设计当中,利用格式塔理论进行设计将有助于用户快速 识别图形符号所构成的“群组模式”。
节省墨水
为了减少冗余可视化元素对读者的影响,在设计过程中,要尽量让每一个符号都有数据意义。
准确度
很多可视化设计会出现扭曲数据的情况,我们需要对夸张程度(或者准确程度)进行度量。
6.编码
从数据到视觉通道的转换过程,被称之为视觉编码(Visual Encoding)。
不同的数据属性需要用不同的通道来进行编码才能达到更好的效果,上图将通道分成两组,分别对应分类数据和可排序数据。下面我以一个简单柱形图为例,进行拆解:
上图左侧是柱形图的配置数据,每个数据条目分为映射到X轴的Value,映射到Y轴的Value,还有一个分组字段“g”。
我们的目标是用来比对不同时间段的数值大小,所有Mark 选择 “点”类型,形状为 rect。X 轴是分类数据,我们按照数据条目的个数和出现顺序依次映射到X轴区间的位置(Position)上。Y 轴数据是 数字类型,映射到矩形的高度上。 分组字段是分类数据,我们通过颜色来进行编码。这样就形成了上图右侧的柱形图。
7.编码有效性
由于人类感知系统的特点,在不同场景下需要设计不同的编码策略,来提升感知速度和准确性。以下几项研究,对当前可视化设计有着深远影响。
预感知图形
经过科学家的实验论证,部分图形可以被人类大脑在非常短的时间内识,比如形状、长短、大小等。
在可视化设计过程中,尽可能的使用具有预感知特性的图形,可以加速感知处理的第一个过程。 有效性排序
一些研究人员对不同的视觉通道对不同数据进行编码进行单变量效果对比,得出有效性排名
8.格式塔理论
格式塔针对人类对特定视觉模式的识别给了很好的分类,该理论同样适用于数据可视化设计。下面我们举例介绍6种原则。
邻近原则(proximity)
空间中距离相近的元素有被看作一体的趋势。人们会很自然的根据距离来对视觉对象进行分组。上图的分组柱形图,我们会很自然的把临近的柱子分为一组,其次才是观察颜色分组。
相似原则(similarity)
刺激物的形状、大小、颜色、强度等物理属性方面比较相似时,这 些刺激物就容易被组织起来而构成一个整体。如下图中,根据颜色和形状,将数据分为两组。
连通性原则 (Element Connectedness)
如果一些元素与其他元素相连时,我们认为这些元素是统一体。如下面的箱型图,如果没有中间的线上线相连,上下两条线是不会被看做一个整体进行分析的。
连续性原则 (Good continuation)
如果一个图形的某些部分可以被看作是连接在一起的,那么这些部分就相对容易被我们视为一个整体。如下面的折线图的连线,虽然是断开的多段线,但是我们仍然视之为一条折线。
封闭的原则(closure)
有些图形是一个没有闭合的残缺的图形,但主体有一种使其闭合的倾向。如下面的形状词云。
共同命运原则(common fate)
如果一个对象中的一部分都向共同的方向去运动,那这些共同移动的部分就易被感知为一个整体。如下方左图,我们会按照相似原则把每行看作一个分组,但是右侧由于共同的运动方向,我们会把每列看作一个分组。