
1. 基本框架
1.1. 数据可视化不仅是一门包含各种算法的技术,还是一个具有方法论的学科
1.2. 在实际应用中需要采用系统化的思维设计数据可视化方法与工具
1.3. 流程
1.3.1. 科学可视化和信息可视化分别设计了可视化流程的参考体系结构模型,并被广泛应用于数据可视化系统中
1.3.2. 数据分析、数据滤波、数据的可视映射和绘制
1.3.3. 流水线实际上是数据处理和图形绘制的嵌套组合
1.3.4. 几乎所有著名的信息可视化系统和工具包都支持这个模型,而且绝大多数系统在基础层都兼容,只存在细微的实现差异
1.3.5. 可视分析学的基本流程则通过人机交互将自动和可视分析方法紧密结合
-
1.3.6. 起点是输入的数据,终点是提炼的知识
1.3.6.1. 从数据到知识有两个途径:交互的可视化方法和自动的数据挖掘方法
1.3.6.2. 两个途径的中间结果分别是对数据的交互可视化结果和从数据中提炼的数据模型
1.3.7. 在相当多的应用场合,异构数据源需要在可视分析或自动分析方法应用之前被整合
1.4. 在任意一种可视化或可视分析流水线中,人是核心的要素
1.4.1. 机器智能可部分替代人所承担的工作,而且在很多场合比人的效率高
1.4.2. 人是最终的决策者,是知识的加工者和使用者
1.4.3. 数据可视化工具目标是增强人的能力,不能完全替代人的作用
1.4.4. 如果可以设计一个全自动的方案,就不需要人的判断了,可视化也就失去了意义
1.5. 核心要素
-
1.5.1. 数据表示与变换
1.5.1.1. 数据可视化的基础是数据表示和变换
1.5.1.2. 有效表示海量数据的主要挑战在于采用具有可伸缩性和扩展性的方法,以便忠实地保持数据的特性和内容
-
1.5.2. 数据的可视化呈现
1.5.2.1. 数据可视化向用户传播了信息,而同一个数据集可能对应多种视觉呈现形式,即*视觉编码
1.5.2.2. 核心内容是从巨大的呈现多样性空间中选择*最合适的编码形式
1.5.2.3. 判断某个视觉编码是否合适的因素包括感知与认知系统的特性、数据本身的属性和目标任务
1.5.2.4. 大量的数据采集通常是以流的形式实时获取的,针对静态数据发展起来的可视化显示方法不能直接拓展到动态数据
1.5.2.4.1. 要求可视化结果有一定的时间连贯性,还要求可视化方法达到高效以便给出实时反馈
-
1.5.3. 用户交互
1.5.3.1. 对数据进行可视化和分析的目的是解决目标任务
1.5.3.2. 三类:生成假设、验证假设和视觉呈现
1.5.3.3. 交互是通过可视的手段辅助分析决策的直接推动力
2. 数据可视化设计
2.1. 第一层
2.1.1. 最外层
2.1.2. 是刻画真实用户的问题,称为问题刻画层
2.1.3. 可视化设计人员采用以人为本的设计方法,与目标用户群相处大量时间,了解目标受众的需求
2.1.4. 首要问题是,用户可能根本不需要数据可视化来帮助解决问题
2.1.5. 解决方法之一是采访和观察用户,定性地验证任务的实际内容
2.1.6. 解决方法之二是调研相关软件或工具中数据可视化方法的实际使用率
2.2. 第二层
2.2.1. 是抽象层,将特定领域的任务和数据映射到抽象且通用的任务及数据类型
2.2.2. 将第一层确定的任务和数据从采用特定领域的专有名词的描述转化为更抽象、更通用的信息可视化术语的描述
2.2.3. 将这些不同领域的需求转化为不依赖于特定领域概念的通用任务是可视化设计人员面临的挑战之一
2.2.4. 主要风险在于选定的任务和数据类型无法解决既定任务目标
2.2.5. 检验的关键是由用户测试系统
2.2.6. 方法之一是让目标用户试用工具,看工具是否能帮助发现新见解或证实了某些假设
2.2.7. 方法之二是以一种长期的局部研究的方式观察并记录用户如何在日常工作中使用系统
2.3. 第三层
2.3.1. 是编码层,设计与数据类型相关的视觉编码及交互方法
2.3.2. 可视化研究的核心内容:设计可视编码和交互方法
2.3.3. 视觉编码和交互这两个层面通常相互依赖
2.3.4. 风险是选定的设计方法的视觉编码效果不佳
2.3.5. 第一种方法是根据感知和认知理论判断设计是否合理
2.3.6. 第二种方法是以用户实验的方式进行规范的用户研究,通过定量或定性分析统计结果或者用户偏好来检验所使用的设计方案的效率
-
2.3.7. 第三种方法是向测试人员展示可视化结果(图像或视频),报告设计结果并做定性讨论
- 2.3.7.1. 目的是确定工具是否对特定的任务和数据集有用
2.3.8. 第四种方法是定量地评估可视化结果(图像或视频)
2.4. 第四层
2.4.1. 最内层
2.4.2. 任务是创建正确完成系统设计的算法
2.4.3. 第四层设计与前三个层次匹配的具体算法,相当于一个细节描述的过程
2.4.4. 与第三层的不同之处在于第三层确定应当呈现的内容以及如何呈现,而第四层解决的是如何完成的问题
2.4.5. 风险在于算法的性能和精度无法达到要求
2.4.6. 方法之一是分析算法的计算复杂度,或测试算法的实际运行时间及内存开销
2.5. 上游层的输出是下游层的输入
- 2.5.1. 无论各层次以何种顺序执行,都可以独立地分析每个层次是否已正确处理
3. 可视化中的数据
3.1. 数据可视化将数据变换为易于感知的可视编码
3.2. 数据认知
- 3.2.1. 概念模型是对数据的高层次描述,对应于人们对数据的具体认知
3.3. 数据类型
-
3.3.1. 类别型数据
3.3.1.1. 用于区分物体
3.3.1.2. 适用于区分度算子,可以判断不同数据之间是否相等
3.3.1.3. 可以互换元素间的位置,统计类别和模式,也可以计算列联相关
-
3.3.2. 有序型数据
3.3.2.1. 用来表示对象间的顺序关系
3.3.2.2. 适用于区分度算子和序别算子,因此可以判断大小关系
3.3.2.3. 可以计算元素间的单调递增(减)关系、中值、百分位数
-
3.3.3. 数值型数据
- 3.3.3.1. 区间型数据
3.3.3.1.1. 用于得到对象间的定量比较
3.3.3.1.2. 适用于区分度算子、序别算子和加减算子
3.3.3.1.3. 可以进行元素间线性加减操作,计算平均值、标准方差等
- 3.3.3.2. 比值型数据
3.3.3.2.1. 用于比较数值间的比例关系
3.3.3.2.2. 适用于区分度算子、序别算子、加减算子和乘除算子
3.3.3.2.3. 由于基数为零,除上述三种数据类型所允许的操作外,还可以进行更复杂的计算
3.3.4. 不同的数据类型同时也对应不同的集合操作和统计计算
4. 可视化的基本图表
4.1. 统计图表是最早的数据可视化形式之一,作为基本的可视化元素仍然被非常广泛地使用
4.2. 原始数据绘图、简单统计值标绘和多视图协调关联
4.3. 原始数据绘图
4.3.1. 原始数据绘图用于可视化原始数据的属性值,直观呈现数据特征
-
4.3.2. 数据轨迹
- 4.3.2.1. 一种标准的单变量数据呈现方法
-
4.3.3. 柱状图
4.3.3.1. Bar Chart
4.3.3.2. 采用长方形的形状和颜色编码数据的属性
-
4.3.4. 直方图
4.3.4.1. Histogram
4.3.4.2. 是对数据集的某个数据属性的频率统计
-
4.3.5. 饼图
4.3.5.1. Pie Chart
4.3.5.2. 采用了饼干的隐喻,用环状方式呈现各分量在整体中的比例
4.3.5.3. 分块方式是环状树图等可视表达的基础
-
4.3.6. 等值线图
4.3.6.1. Contour Map
4.3.6.2. 等值线图使用相等数值的数据点连线来表示数据的连续分布和变化规律
-
4.3.7. 走势图
4.3.7.1. Sparkline
4.3.7.2. 是一种紧凑简洁的数据趋势表达方式
-
4.3.8. 散点图
4.3.8.1. Scatter Plot
4.3.8.2. 是表示二维数据的标准方法
4.3.8.3. 在散点图中,所有数据以点的形式出现在笛卡尔坐标系中,每个点所对应的横纵坐标即代表该数据在坐标轴所表示维度上的属性值大小
-
4.3.9. 散点图矩阵
4.3.9.1. Scatter Plot Matrix
4.3.9.2. 是散点图的高维扩展,用来展现高维(大于二维)数据属性分布
-
4.3.10. 维恩图
4.3.10.1. Venn Diagram
4.3.10.2. 维恩图使用平面上的封闭图形来表示数据集合间的关系
-
4.3.11. 热力图
4.3.11.1. Heat Map
4.3.11.2. 使用颜色来表达位置相关的二维数值数据大小
4.4. 简单统计值标绘
- 4.4.1. 盒须图是John Tukey发明的通过标绘简单的统计值来呈现一维和二维数据分布的一种方法
4.5. 多视图协调关联
4.5.1. Multiple Coordinated Views
4.5.2. 将不同种类的绘图组合起来,每个绘图单元可以展现数据某个方面的属性,并且通常允许用户进行交互分析,提升用户对数据的模式识别能力