目录
- 概述
- 公开数据集(以下是正文)
- 可视化——从定义到欣赏
- 什么是数据可视化
- 为什么需要可视化
- 什么是好的可视化
- 感知与认知
- 可视化设计编码与变换
- 可视化设计
- 可视化的编码
- 可视化的变换
- 时间数据可视化
- 时间数据可视化
- 时空数据可视化
- 流数据可视化
- 时间数据可视化的设计原则
- 高维数据可视化
- 数据维度
- 高维数据可视化
- 数据变换
- 数据呈现
- 数据交互
- 空间和地理信息可视化
- 地理信息的定义
- 地图投影
- 地理可视化的高级方法
- 树图与网络可视化
- 什么是图
- 树图可视化
- 分层数据(Hierarchical Data)
- 分层数据可视化
- 网络可视化
- 可视化中的交互
- 背景介绍
- 基本交互方法
- 可视化交互模型
- 可视化交互的任务、技术和设备
- 未来可探索的交互方式
- 科学数据可视化
- 科学数据可视化概述
- 标量场的可视化
- 向量场及张量场的可视化
- 抽象空间中的科学可视化
- 文本可视化
- 概述
- 文本分析和挖掘
- 文本可视化设计
- 文档内容可视化
- 文档关系可视化
- 多层次文档可视化
- 多媒体可视化
概述
这是我读研期间记录的一篇关于数据可视化的博客(2020年),当时怕图片水印问题没有发布,后续如果有同学在学习这方面知识,希望能有所帮助。
非常感谢浙大提供了这么一个免费的学习机会,让我对数据可视化方面有了更加清晰的认识。
这篇算是一个转载类文章,原本发布在微信公众号宽视善知,目前是找不到了。
公开数据集(以下是正文)
老师分享的公开数据集:
https://www.kaggle.com/datasets
https://cloud.google.com/public-datasets
https://data.world/
可视化——从定义到欣赏
什么是数据可视化
数据可视化就是从数据到视觉表格的转化,从而传达数据中隐含的信息。
为什么需要可视化
人类的视觉系统是一种并行的系统。可视化的第一个优点就是利用这些并行的视觉通道来帮助我们提高获得数据的效率
同时对于一些数据,用现有的统计方法无法获得数据特征,可视化可以允许用户自己对于数据进行探索,对于数据的原貌进行理解
什么是好的可视化
- 信:可视化作品不能误导用户,也不能带有偏见。一个可视化设计最重要的一点是如实传达了数据的真实面貌,一定不能为了传达作者的意见而欺骗用户。
- 达:可视化设计的根本用途不是为了美观,也不是为了简洁,而是帮助用户解决问题,一个高效的可视化设计才能称得上“达”。
- 雅:可视化设计是有作者的艺术设计在其中的,这些设计的成分就要求可视化系统要尽量美观,优雅。
感知与认知
- 视觉感知
- 感知指的是人类为了表达和理解周围环境而捕获环境中存在的自然信号的过程。然而,人类的感知系统并不是一个百分百准确的系统。以视觉感知系统为例,人类所看见的事物并不一定就是事物本身
- 由于人类的视觉感知系统是基于相对判断而不是绝对判断的,所以存在许多的视错觉现象
- 认知
- 认知指的是人脑通过一些列复杂的心理过程对所捕获的信息进行组织、识别和理解
- 有关人类认知能力的两个事实
- 记忆在人类认知中扮演着重要的角色,但是工作记忆是十分有限的。因此,可视化工作的目标之一是加强用户的工作记忆。
- 人类很难注意到发生在注意力之外的事物变化,一些重要的变化需要通过诸如高亮等可视化手段以变得可见,从而减轻用户的记忆负担
- 格式塔理论
- 核心:结构比元素更重要,即视觉形象首先作为统一的整体而被人类认知
- 五个性质:即接近性、相似性、连续性、闭合性和简单性
- 四个原则:共势原则、好图原则、对称原则和经验原则
- 颜色
- 人类的视觉感知系统对波长中等的黄绿光更敏感,而对波长较长或较短的红蓝光不敏感
- 常见的颜色空间,包括RGB、HSV和Lab等
- 与RGB相比,HSV和Lab颜色空间更加符合人类的视觉表达规律
- 工具箱
- 颜色选择工具,如Color Brewer, Colorgorical 等
可视化设计编码与变换
可视化设计
可视化的过程模型(时间线)
上个世纪,Munzner就提出了一个基于任务目标的模型,
后来提出了Conceptual Model、Data State Reference Model、Visualization Reference Model等等。
到今天,说到可视化都离不开Visualization Reference Model,这个模型形象而且简洁地描绘了可视化的过程
设计准则
- 与一个问题有关:什么是好的可视化?【见相关章节】
可视化的编码
数据类型主要分为【不同的类型有各自适合的编码方式】
- items(比如人、咖啡店等离散个体)
- attributes(比如蛋白质水平等连续信息)
- links(常在网络中出现)
- position(二维、三维的地理信息等)
- grids(网格中的数据)
要遵循一定的规律来选择编码方式。也就是如何结合标记和通道,如何处理通道信息的叠加,注意准确性、可辨认性、分离还是聚集、视觉突出以及分组的应用。
用色规律,大区域我们总是使用透明度高、明度低的颜色做强调,但在较小区域就经常使用鲜艳的颜色来进行强调。
可视化的变换
可视化的变换是非常重要的一个步骤,它对数据进行一定的数学变换,让数据变得更有规律更可分析
常见的变换手段
标准化,把不同范围的数据映射到相应通道范围
离散化,比如年龄我们总是习惯分段研究
聚类,把数据分成多类。如:KMeans是最常用的聚类方法,它很巧妙地利用了重心漂移的原理,在有限的迭代次数中就能自动得到相应的聚类信息
时间数据可视化
时间数据可视化
时间线的表达方式,分别为线形(Linear)、适合于表达周期数据的环形(Radial)、适合于表达日历数据的网格形(Grid)、螺旋形(Spiral)以及任意形(Arbitrary)
时间的尺度,分为时序型(Chronological)、相对时间型(Relative)、对数型(Logarithmic)、顺序型(Sequential)和顺序+持续时间型(Sequential+Interim Duration)
时间的可视化布局,按其组织方式可以分为线形、流形、树形和图形
时空数据可视化
时空数据可视化涉及时空信息的变化。与传统的视觉表示相比,它具有揭示整体趋势和发展方向的天然优势,因此,在许多应用场景中,它成为决策的重要工具。
流数据可视化
流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合
手机日志、金融市场数据、网络数据包、社交网络数据等都是流数据,具有规模和到达顺序不可控、需要在线分析处理、存在数据错误和损失等特性
流数据是时间数据的特殊情况,需要特殊的流程来处理
时间数据可视化的设计原则
对于相似的可视化表达,要使得风格尽量统一;
使用邮票图表法进行对比;
空间位置是最强烈的视觉提示;
采用多视图比把所有信息放在一张图里更高效等。
高维数据可视化
数据维度
例子:
- 一维的例子很简单:关于各个国家的离婚率的条形图;
- 二维的例子也相对直观:对于一组被调查者,对于他们自我估计的体重以及实际体重这两个维度的数据,画出一个散点图。
- 而三维的例子里,巫老师特别强调,千万不能用三维空间来表示数据,这在专业可视化人员看来,是十分业余的做法。例如下图中的三维表示就会造成视觉混淆。
- 对于高维数据,我们常用的解决方法是增加视觉通道,但是我们应该多方面考虑选择最为合适的视觉通道的组合,有些通道之间会让人眼出现干扰。
出于以上考量,研究者们提出了一个最为有效和常用的解决方法就是:多视图协调关联。即,通过增加视图的方式,可以表达更多的数据属性/维度。但是,太多的视图会造成视觉混淆,降低分析效率,所以对于视图的选择要慎重考虑。
高维数据可视化
数据变换
- 主要指对数据的降维。由于高维数据中有大量的冗余信息,可能会隐藏重要的数据信息,所以我们应当用降维的方式来减少这种冗余
- 常见的降维方式主要分为
- 线性方式
- PCA:当我们想将二维数据降成一维数据时,我们可以通过在直角坐标系中选择某个方向,将数据点投影上去,使得在尽量不损失信息的情况下,达到投影后方差最大;当想要将三维数据降到二维时,利用类似的方式,但投影后协方差最大。
- MDS:MDS算法要求原始空间中样本之间的距离在低维空间中得以保持。但是为了有效降维,我们往往只需要降维后的距离与原始空间距离尽可能接近即可
- 非线性方式
- 线性方式
数据呈现
以一种精妙的方法来达到合理描述高维数据的方式,常用方法有:
散点图矩阵
平行坐标轴
基于图标表示法
小图标法
数据交互
在数据展示时,加入交互的情况下,能帮助人们更好的理解和分析数据
空间和地理信息可视化
地理信息的定义
- 80%的数据是带有空间和地理信息的,随着gps、北斗等定位系统的普及,地理信息在我们身边有着越发广泛的应用
- 把地理信息解构为三个维度:
- 一是属性,即物体是什么;
- 二是位置,即物体在哪里;
- 三是时间,即什么时候。
地图投影
现实生活中,我们常常需要将曲面的地理信息投影到一个平面上
最流行的墨卡托投影法,它最大的优势是具有共形保角的特性,能够使投影前后的局部形状不变,适应了导航的需要。但是墨卡托投影法也会扭曲实际面积,如图用格陵兰岛展现了地图大小和实际大小的区别
四种性能评价维度:共形、等面积、等距离和同方位角
目前没有一种投影方法可以满足这四种要求,所以在实际应用中要根据需求进行取舍
地理可视化的高级方法
几何形状(Geometry)
- 用点、线、圈等几何形状,在原本的地图图层上覆盖一层几何形状图层的可视化方法
- 下图展示了芝加哥市不同种族的人口分布图,其中点代表了住户,不同的颜色代表了不同的族裔,用几何的方法把地理信息背后深刻的社会内涵展现出来
分级统计图(Choropleth)
- 将部分区域用相应的色级标示来表现统计变量的方法
- 下图是1826年法国文盲分布的分级统计图,也是历史上最早的分级统计图。因为人分辨颜色的能力有限,所以数据分类数量在五到七类为最佳
比较统计图(Cartograms)
- 与用颜色编码的分级统计图相对,比较统计图使用面积和距离进行编码
- 图用面积大小对应人口数量的多少,制作了世界人口地图
场/线方法(Fields/Lines)
- 有利于表现数据连续变换的过程,主要使用核密度估计(Kernel Density Estimation)技术,绘制直线图和流向图等
- 下图是中国科学院深圳先进技术研究院曾伟老师所做的工作,在对核密度估计边绑定(KDEEB)的批判性思考的基础上,提出了路径感知边绑定技术,并应用于深圳出租车轨迹上
树图与网络可视化
什么是图
- 图(Graph)是由节点(node/vertex)和边(edge/link)组成的,节点包含位置、类别等属性,边包含距离、权重、方向等信息。
- 图可视化的核心问题在于如何对节点和边进行空间排布,从而形成有效且优美的视觉呈现。
- 图可视化的目的:数据的探索和分析、数据展示和呈现
树图可视化
分层数据(Hierarchical Data)
- 分层数据指的是具有层级划分的以树状形式呈现的数据,主要描述对象之间的层级关系,如社会关系、信息组织、逻辑连接等
分层数据可视化
节点连接图(Node-link diagram)
节点连接图的布局方法
- 正交布局:正交坐标下的布局方法,如缩进图(Indent diagram)和树状图(Dendrogram diagram)等。正交布局下,节点水平或垂直排布并与坐标轴对齐,缺点是会产生不合理的长宽比从而导致空间浪费。
- 径向布局:树的根节点置于中心,子节点位于圆环上,往外层层扩张,节点到中心的距离表示深度,相比正交布局可以较好地利用空间
常用图形结构
锥体树(Cone-Tree)
锥体树是一种三维空间可视化技术,从侧面投影得到的是正交布局,从锥体顶部投影得到的是径向布局
双曲树(Hyperbolic Tree)
双曲树将节点置于双曲空间,类似径向布局,其半径随着层级增加呈指数级增长,可以容纳更多的子节点
节点连接图的可视化要求
- 节点的次序遵循他们的层级关系
- 较少的交叉边
- 缩短边的长度
- 注意长宽比
节点连接图问题在于当深度增加时节点数量会呈指数级增长,此时可以采用变形(Distortion)或过滤(Filtering)的方式解决
空间填充方法(Space-filling methods)
Treemap
- 从树结构映射到空间填充,子节点被嵌套在父节点之中,可以展示包含关系、大小关系,适用于展示具有空间大小属性的数据。这种方法的缺点是随着节点数量增多,子节点会被过分切分从而导致呈现和交互的不便
Voronoi Treemap
- 通过递归地划分凸多边形来可视化分层数据
树图可视化领域最新研究方法,如Bubble Treemaps,Sunburst Plots等
混合方法(Hybrid methods)
结合了节点连接图和空间填充方法,位于组群内的节点使用空间填充方法可视化,组群之间使用节点连接图进行展示
网络可视化
网络数据(Network data)
- 网络数据相比于分层数据,边存在方向和权重甚至形成环状结构,在结构上更为复杂,可以包含更多的信息
网络可视化方法
节点连接图
力导向布局(Force-Directed Layout)
模仿物理模型,以节点为质点,以边为弹簧模型,通过力的相互作用多次迭代之后达到动态平衡,最终得到相对稳定的布局。力导向布局的关键在于节点位置的计算:
- 首先随机选择或配置固定的初始节点,进入循环迭代
- 基于Spring模型或Energy模型计算每对节点的引力和斥力
- 计算每个节点的累加受力
- 根据受力逐步更新节点的位置,进入下一此迭代
- 布局到达相对稳定时停止循环
力导向图的局限在于初始节点的配置以及局部最优性导致每次得到的结果是非确定的,另外计算复杂度高
MDS布局
MDS是一种数据降维的全局最优方法,解决了力导向布局的节点一致性问题,其目标是使得节点在二维平面上布局的距离尽可能接近其在拓扑关系上的距离
邻接矩阵
- 使用一个n*n的矩阵表示网络图的连接关系,不存在交叉边所以适用于边混乱图,通过良好的节点排序可以很好地展示图的模式。另一方面,邻接矩阵太过抽象不易理解,很难在进阶矩阵中寻找转移关系路径。
混合方法
- 一方面当图中存在复杂的边关系时邻接矩阵难以获得路径信息
- 另一方面节点连接图难以解决节点数量过多的问题,而混合方法结合了节点连接图和邻接矩阵的优点而避免其缺陷
网络图简化
限于展示屏幕尺寸有限,而需要可视化的数据量越来越多,所以需要一些网络图简化的方法
抽取网络图案(Extracting Network Motif):抽取出图中一致的连接模式并抽象成简单的图案从而简化网络图,虽然牺牲了部分细节信息,但是可以获得更高层次的结构信息
边绑定(Edge Bunding):原始的网络图存在复杂的边关系,使用边绑定可以更清晰地获取高层次的连接关系
可视化工具
- Alchemy.js,Sigma.js,D3.js等可视化包工具以及Gephi等可视化软件
可视化中的交互
背景介绍
可视化中的交互是用户与数据之间的沟通方式。可视化不仅是将数据转化为可视化的元素呈现给用户的过程,用户也可以对数据进行探索,将探索得到的可视化意图传达到可视化系统之中。支持用户探索数据和分析数据的过程就成为可视化中的交互。
基本交互方法
目前公认的一种归类总结方式是将可视交互技术分为:
选择
- 悬停(Pop-up Tooltips)
- 悬停是指当鼠标经过节点时,显示出该节点的细节说明
- 点选(picking)
- 通过点击一个物体,即可查看它的详细信息
- 框选(Lasso)
- 当选择目标有多个时,我们通过框选来包含所有的目标物体
- 悬停(Pop-up Tooltips)
探索
通过交互显示数据的不同属性或观察数据不同的角度
典型例子
- 在网页上点击不同的超链接,获得不同的信息
- 在二维空间的探索中,当事件数据量非常大时,我们可以通过平移观察不同部分的数据,或使用选择交互获得不同种类的信息
- 在三维空间中的探索方式。我们可以在特殊设备上通过平移、旋转、缩放观察数据的不同部分
重配
通过改变数据的布局,提供探索数据的新视角
- 第一种方法是不改变数据的显示方法,但改变数据属性的排列顺序,达成重配
- 第二种方法是排序,根据某种属性对数据进行排序
- 第三种方法是调整数据的位置
编码
编码是可视化的核心要素,用户可以寻找最符合用户特性的编码,展示数据的模式
抽象和具体
当数据规模达到一定程度时,我们通常会简化数据,再显示用户关心的细节数据。简化数据会丢失一部分的信息,但能显著提升绘制速率,方便用户及时了解数据特征,这种简化数据的方式就是抽象和具象的可视化交互。
过滤
过滤是通过突出显示一部分数据,或只显示某部分数据,来帮助用户聚焦于特定的区域,用户可以指定一个或一些特定的查找范围,让系统过滤出满足这些条件的数据子集,集中显示它们的特征
方法:
- 过滤条件筛选,缩小检索范围
- 动态查询
例子:如图是一个三维的大脑纤维可视化图,我们可以通过交互对数据进行过滤,从而显示密度较大对纤维部分
链接
链接交互和选择交互有密切的联系,它的目的在于显示与目标对象相关联程度较大的对象信息。通常的方式有高亮有联系的节点以及刷选(brushing)
Linked View:链接视图这是一种常用的链接交互显示方式,观察者可以在不同的显示窗口中观测到数据的不同属性。
Brushing:刷选的链接交互模式为,用户在某一个视图中刷选一部分数据,即可以在另一个视图中获得被选择数据的其他多种属性
可视化交互模型
概览+细节交互模型
- 在进行大数据可视化的时候,往往会遇到数据尺度的问题,即数据量过大,无法在有限的空间中完全显示。而“概览+细节”的可视化交互模型提供了在有限的空间中,同时显示数据全部的概览和部分的细节的模式
聚焦+上下文交互模型
- 呈现可视化重点数据部分的同时,对该部分数据与整体中的上下文数据的联系也进行清晰的显示。
- 模型最主要的技术是鱼眼技术,它通过交互对部分数据可视化进行放大,使得用户即可以看到聚焦的部分,又可以看到该部分数据与上下文数据的关系
可视化交互的任务、技术和设备
- 交互任务主要有以下三类:
- 对视点/物体对操作
- 对可视化组件进行操作
- 对数据进行注释和选择
- 交互技术和设备
- 基于触摸的交互
- 大屏交互vs 小屏交互
- 竖直屏交互vs 水平屏交互
- 触摸交互的局限
- 空中的手势交互
- 最典型的应用就是Leap Motion,它是一个能探测手指动作的设备,将人的手指的运动映射到与设备的交互中去(VR、AR)
- 混合交互
- 结合了多种交互技术,例如压力和触摸交互相结合,触摸交互和实体交互相结合,空中手势和实体交互相结合
- 基于触摸的交互
未来可探索的交互方式
- 三维领域交互方式的实现与创新
- 将人的交互意图和数据结构特征相结合
科学数据可视化
科学数据可视化概述
科学可视化的数据来源于对一维、二维、三维或更高维度空间的测量或模拟,这些数据与医学、大气、海洋等诸多科学领域相关,数据元素可能是标量、向量或张量。
为什么需要科学数据可视化?
- 科学可视化能有效地传达已知信息
- 科学可视化能辅助科学家验证猜想
- 科学可视化能揭示数据背后隐藏的规律,帮助科学家提出新的猜想
标量场的可视化
对标量数据进行可视化的目的在于找出逻辑特征、极大极小值等数据中隐含的特征。
一维空间上的标量数据可以用折线图、柱状图等形式表示。
二维空间上的标量数据可以用等高线图、热力图等形式表示。
三维空间上的标量数据可视化与一维和二维上的有所不同,原因在于三维空间上存在遮挡问题。三维空间上的标量数据两种形式表示:
直接体绘制(direct volume rendering)
- 整个三维空间沿视线方向作投影,投影面上的一个点由三维空间上的一条射线投影而成,在该射线上以一定的间距取三维空间中数个点,使用一个特定的映射函数(transfer function)以这些点的标量数据作为参数,即可计算出投影点的颜色取值
等势面绘制(isosurface rendering)
- 类似于二维空间上的等高线图,对等势面渲染同样的颜色。
向量场及张量场的可视化
对向量及张量数据进行可视化的目的在于找出临界点等数据中隐含的特征。
流场(即向量场)有以下几类可视化形式:
- 绘制带有流场特征的稀疏曲线
- 流线(streamlines):在流场中每一点上都与速度矢量相切的曲线
- 迹线(pathlines):流体质点在空间运动时所描绘出来的曲线
- 时线(timelines):由一系列相邻流体质点在不同瞬时组成的曲线
- 脉线(streaklines):在某一时间间隔内相继经过空间一固定点的流体质点依次串连起来而成的曲线
- LIC(Line Integral Convolution):类似于早期实验中的染色,对流场作积分
- glyph-based (glyph-based visualization):使用小图标标注各个点的流向
- 流面图(stream surfaces):选择一组流线作为一个流面
张量场的可视化方式有:
- 提取张量中的最大特征向量,从而将张量场转化为流场
- glyphs:使用小图形代表张量场的信息
抽象空间中的科学可视化
通过分析将复杂的原始数据抽象成高度概括的高层数据,在科学家需要的时候再通过交互的形式将被选择的高层数据还原为原始数据并进行展示
文本可视化
概述
文本可视化的两个主要大类:内容分析(content)和话题分析(topic)。
对于文本的分析可从词法、语法和语义三个层次进行分析。
文本可视化的处理过程:包括预处理(去除停用词等)、特征提取(feature)、相似度计算(measurement)、可视化设计和布局以及可交互式设计。
文本分析和挖掘
文本分析方法:
- 分词(Tokenization)
- 将一个句子中的词语给分割出来,英文除了简单地将单词分割出来,还有有一些如she’s的复杂的场景。在分词的过程中,首先需要去掉一些无意义词(如a,the,that),再统一各名词的单复数形式(如men->man),最终将句子分成了若干个单词
- 向量空间模型(Vector-space Model)
- 将文本进行向量化再计算文本间的相似度。文本向量化主要介绍了了词袋模型(Bag-of-words)和词频-逆文本模型(TF-IDF),而相似度计算介绍了利用余弦函数计算向量化后的文本之间的余弦值,余弦值越小,两个文本越相近
- 话题提取(Topic retrieving)
- 话题是对一个文本的抽象,一个话题能够反映整个文档的主要内容,话题提取类似于一种二维的张量分解过程。傅四维老师还特别强调,话题提取是一个饱受争议技术,需要大量人工干预,最终的提取结果未必合理。
文本可视化设计
文本可视化设计在文档的特征方面分为了三个部分:文档内容可视化(Content)、文档关系可视化(Relations)和文档的多层次可视化(Multi-level)
文档内容可视化
基于关键词的可视化(Keyword-based)
- 词云(word cloud)
- Document card:通过一个算法对文章做了一个概览,方便读者快速了解这个文章,可以很快的知道一篇文章中的重点
时序文档可视化(Temporal Document)
每个话题会根据时间序列改变,其话题的热度也随之改变
话题流(ThemeRiver)
特征分配可视化(Feature Distribution)
通过计算一个单一文本或者某个文本集合中句子的平均长度和词汇量统计等
用户观点分析(Opinion Analysis)
统计数百万条微博等社交媒体中某个人不同的观点信息
查询可视化(Query)和软件可视化(SoftWare)
在网页中搜索的信息后,能够很好地将结果展示出来
文档关系可视化
描述文档中多个词之间的各类关系,最典型的就是知识图谱技术,通过自然语言处理的方法,把一篇文章中名词、动词和介词之间的关系以三元组的方式展示出来
多层次文档可视化
展示文档之间多维度的关系
多媒体可视化
将图片作为散点映射到来二维平面上计算图片之间的相似度