浙大数据可视化课程学习笔记 目录概述公开数据集以下是正文可视化——从定义到欣赏什么是数据可视化为什么需要可视化什么是好的可视化感知与认知可视化设计编码与变换可视化设计可视化的编码可视化的变换时间数据可视化时间数据可视化时空数据可视化流数据可视化时间数据可视化的设计原则高维数据可视化数据维度高维数据可视化数据变换数据呈现数据交互空间和地理信息可视化地理信息的定义地图投影地理可视化的高级方法树图与网络可视化什么是图树图可视化分层数据Hierarchical Data分层数据可视化网络可视化可视化中的交互背景介绍基本交互方法可视化交互模型可视化交互的任务、技术和设备未来可探索的交互方式科学数据可视化科学数据可视化概述标量场的可视化向量场及张量场的可视化抽象空间中的科学可视化文本可视化概述文本分析和挖掘文本可视化设计文档内容可视化文档关系可视化多层次文档可视化多媒体可视化概述这是我读研期间记录的一篇关于数据可视化的博客2020年当时怕图片水印问题没有发布后续如果有同学在学习这方面知识希望能有所帮助。非常感谢浙大提供了这么一个免费的学习机会让我对数据可视化方面有了更加清晰的认识。这篇算是一个转载类文章原本发布在微信公众号宽视善知目前是找不到了。公开数据集以下是正文老师分享的公开数据集https://www.kaggle.com/datasetshttps://cloud.google.com/public-datasetshttps://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)和顺序持续时间型(SequentialInterim Duration)时间的可视化布局按其组织方式可以分为线形、流形、树形和图形时空数据可视化时空数据可视化涉及时空信息的变化。与传统的视觉表示相比它具有揭示整体趋势和发展方向的天然优势因此在许多应用场景中它成为决策的重要工具。流数据可视化流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合手机日志、金融市场数据、网络数据包、社交网络数据等都是流数据具有规模和到达顺序不可控、需要在线分析处理、存在数据错误和损失等特性流数据是时间数据的特殊情况需要特殊的流程来处理时间数据可视化的设计原则对于相似的可视化表达要使得风格尽量统一使用邮票图表法进行对比空间位置是最强烈的视觉提示采用多视图比把所有信息放在一张图里更高效等。高维数据可视化数据维度例子一维的例子很简单关于各个国家的离婚率的条形图二维的例子也相对直观对于一组被调查者对于他们自我估计的体重以及实际体重这两个维度的数据画出一个散点图。而三维的例子里巫老师特别强调千万不能用三维空间来表示数据这在专业可视化人员看来是十分业余的做法。例如下图中的三维表示就会造成视觉混淆。对于高维数据我们常用的解决方法是增加视觉通道但是我们应该多方面考虑选择最为合适的视觉通道的组合有些通道之间会让人眼出现干扰。出于以上考量研究者们提出了一个最为有效和常用的解决方法就是多视图协调关联。即通过增加视图的方式可以表达更多的数据属性/维度。但是太多的视图会造成视觉混淆降低分析效率所以对于视图的选择要慎重考虑。高维数据可视化数据变换主要指对数据的降维。由于高维数据中有大量的冗余信息可能会隐藏重要的数据信息所以我们应当用降维的方式来减少这种冗余常见的降维方式主要分为线性方式PCA当我们想将二维数据降成一维数据时我们可以通过在直角坐标系中选择某个方向将数据点投影上去使得在尽量不损失信息的情况下达到投影后方差最大当想要将三维数据降到二维时利用类似的方式但投影后协方差最大。MDSMDS算法要求原始空间中样本之间的距离在低维空间中得以保持。但是为了有效降维我们往往只需要降维后的距离与原始空间距离尽可能接近即可非线性方式数据呈现以一种精妙的方法来达到合理描述高维数据的方式常用方法有散点图矩阵平行坐标轴基于图标表示法小图标法数据交互在数据展示时加入交互的情况下能帮助人们更好的理解和分析数据空间和地理信息可视化地理信息的定义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 methodsTreemap从树结构映射到空间填充子节点被嵌套在父节点之中可以展示包含关系、大小关系适用于展示具有空间大小属性的数据。这种方法的缺点是随着节点数量增多子节点会被过分切分从而导致呈现和交互的不便Voronoi Treemap通过递归地划分凸多边形来可视化分层数据树图可视化领域最新研究方法如Bubble TreemapsSunburst Plots等混合方法Hybrid methods结合了节点连接图和空间填充方法位于组群内的节点使用空间填充方法可视化组群之间使用节点连接图进行展示网络可视化网络数据Network data网络数据相比于分层数据边存在方向和权重甚至形成环状结构在结构上更为复杂可以包含更多的信息网络可视化方法节点连接图力导向布局Force-Directed Layout模仿物理模型以节点为质点以边为弹簧模型通过力的相互作用多次迭代之后达到动态平衡最终得到相对稳定的布局。力导向布局的关键在于节点位置的计算首先随机选择或配置固定的初始节点进入循环迭代基于Spring模型或Energy模型计算每对节点的引力和斥力计算每个节点的累加受力根据受力逐步更新节点的位置进入下一此迭代布局到达相对稳定时停止循环力导向图的局限在于初始节点的配置以及局部最优性导致每次得到的结果是非确定的另外计算复杂度高MDS布局MDS是一种数据降维的全局最优方法解决了力导向布局的节点一致性问题其目标是使得节点在二维平面上布局的距离尽可能接近其在拓扑关系上的距离邻接矩阵使用一个n*n的矩阵表示网络图的连接关系不存在交叉边所以适用于边混乱图通过良好的节点排序可以很好地展示图的模式。另一方面邻接矩阵太过抽象不易理解很难在进阶矩阵中寻找转移关系路径。混合方法一方面当图中存在复杂的边关系时邻接矩阵难以获得路径信息另一方面节点连接图难以解决节点数量过多的问题而混合方法结合了节点连接图和邻接矩阵的优点而避免其缺陷网络图简化限于展示屏幕尺寸有限而需要可视化的数据量越来越多所以需要一些网络图简化的方法抽取网络图案Extracting Network Motif抽取出图中一致的连接模式并抽象成简单的图案从而简化网络图虽然牺牲了部分细节信息但是可以获得更高层次的结构信息边绑定Edge Bunding原始的网络图存在复杂的边关系使用边绑定可以更清晰地获取高层次的连接关系可视化工具Alchemy.jsSigma.jsD3.js等可视化包工具以及Gephi等可视化软件可视化中的交互背景介绍​ 可视化中的交互是用户与数据之间的沟通方式。可视化不仅是将数据转化为可视化的元素呈现给用户的过程用户也可以对数据进行探索将探索得到的可视化意图传达到可视化系统之中。支持用户探索数据和分析数据的过程就成为可视化中的交互。基本交互方法目前公认的一种归类总结方式是将可视交互技术分为选择悬停Pop-up Tooltips悬停是指当鼠标经过节点时显示出该节点的细节说明点选picking通过点击一个物体即可查看它的详细信息框选Lasso当选择目标有多个时我们通过框选来包含所有的目标物体探索通过交互显示数据的不同属性或观察数据不同的角度典型例子在网页上点击不同的超链接获得不同的信息在二维空间的探索中当事件数据量非常大时我们可以通过平移观察不同部分的数据或使用选择交互获得不同种类的信息在三维空间中的探索方式。我们可以在特殊设备上通过平移、旋转、缩放观察数据的不同部分重配通过改变数据的布局提供探索数据的新视角第一种方法是不改变数据的显示方法但改变数据属性的排列顺序达成重配第二种方法是排序根据某种属性对数据进行排序第三种方法是调整数据的位置编码编码是可视化的核心要素用户可以寻找最符合用户特性的编码展示数据的模式抽象和具体当数据规模达到一定程度时我们通常会简化数据再显示用户关心的细节数据。简化数据会丢失一部分的信息但能显著提升绘制速率方便用户及时了解数据特征这种简化数据的方式就是抽象和具象的可视化交互。过滤过滤是通过突出显示一部分数据或只显示某部分数据来帮助用户聚焦于特定的区域用户可以指定一个或一些特定的查找范围让系统过滤出满足这些条件的数据子集集中显示它们的特征方法过滤条件筛选缩小检索范围动态查询例子如图是一个三维的大脑纤维可视化图我们可以通过交互对数据进行过滤从而显示密度较大对纤维部分链接链接交互和选择交互有密切的联系它的目的在于显示与目标对象相关联程度较大的对象信息。通常的方式有高亮有联系的节点以及刷选brushingLinked 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 cloudDocument card通过一个算法对文章做了一个概览方便读者快速了解这个文章可以很快的知道一篇文章中的重点时序文档可视化(Temporal Document)每个话题会根据时间序列改变其话题的热度也随之改变话题流ThemeRiver特征分配可视化(Feature Distribution)通过计算一个单一文本或者某个文本集合中句子的平均长度和词汇量统计等用户观点分析(Opinion Analysis)统计数百万条微博等社交媒体中某个人不同的观点信息查询可视化(Query)和软件可视化SoftWare)在网页中搜索的信息后能够很好地将结果展示出来文档关系可视化描述文档中多个词之间的各类关系最典型的就是知识图谱技术通过自然语言处理的方法把一篇文章中名词、动词和介词之间的关系以三元组的方式展示出来多层次文档可视化展示文档之间多维度的关系多媒体可视化将图片作为散点映射到来二维平面上计算图片之间的相似度