3.2.2 数据可视化

数据可视化(data visualization)就是将抽象的数据转化为人类更容易感知的图形及图像的过程。通过计算机技术,数据可视化将复杂的、抽象的数据转化为结合了图形、符号及颜色等因素的更容易被人脑感知的图像,被转化成可视化图像的数据可以更加直观地传递其包含的信息。而由可视化传递出来的数据信息再由用户形成结论或决策,并将有效信息进行传播和应用。

数据可视化主要对数据进行可视化展示及分析。可视化与元宇宙息息相关,其流程如图3.12所示。完整的可视化流程就是数据空间到可视空间的映射,从收集来的原始数据中通过数据分析得到预备数据,过滤后得到焦点数据(过滤后的比较重要的数据)。通过映射将焦点数据转换成几何数据,最后通过渲染获得图像数据。

图3.12 可视化流程

数据可视化的目的主要是读出数据中三方面的信息:

1)数据中的规律:可视化可以有效地呈现数据的重要特征,在数据中发现客观规律;

2)展示数据间的关系和相关性;

3)清晰地表达数据中的异常值。

数据可视化包含三个分支:科学可视化(scientific visua-lization)、信息可视化(information visualization),以及后来演化出的可视分析(visual analytics)。

1.科学可视化

科学可视化的概念和作用由美国计算机科学家布鲁斯·麦考梅克在其1987年关于科学可视化的定义中首次提出:“利用计算机图形学来创建视觉图像,帮助人们理解科学技术概念结果的那些错综复杂而又往往规模庞大的数字表现形式。”

科学可视化面向的是科学和工程领域数据,比如空间坐标和几何信息的三维空间测量数据、计算机仿真数据、医学影像数据,重点探索如何以几何、拓扑和形状特征来呈现数据中蕴含的规律。科学可视化主要关注如建筑学、气象学、医学或生物学方面的各种系统的三维现象的可视化,它是一个跨学科研究与应用的领域,其重点在于对体、面以及光源等的逼真渲染,还包括某种动态(时间)成分等。科学可视化主要利用计算机图形学将数学方程等文字信息转换成客观的视觉图像,从而有助于观看者快速了解状况,更好、更快速地做出有效的判断。

2007年召开的ACM SIGGRAPH科学可视化研讨会确认了可视化技术方法涉及二维、三维以及多维可视化,如色彩变换(color transformation)、高维数据集符号、气体和液体信息可视化、立体渲染、等值线(isoline)和等值面、着色、颗粒跟踪、动画、虚拟环境技术以及交互式驾驶(interactive steering)。进一步延伸的主题则包括交互技术、已有的可视化系统与工具、可视化方面的美学问题,而相关主题则包括数学方法、计算机图形学以及通用的计算机科学。

图3.13展示了多种不同的科学可视化案例。

图3.13 多种不同的科学可视化案例

2.信息可视化

信息可视化是由斯图尔特·卡德(Stuart K.Card)、约克·麦金利(Jock D.Mackinlay)和乔治·罗伯逊(George G.Robertson)于1989年提出的,主要用于研究大规模非数值型信息资源的视觉呈现,即将数据信息和知识转化为一种视觉形式。信息可视化处理的对象是非结构化、非几何的抽象数据,如金融交易、社交网络和文本数据,其核心挑战是大尺度高维复杂数据如何减少视觉混淆对信息的干扰。

马里兰大学教授本·施奈德曼(Ben Shneiderman)把数据分成以下七类:一维(1D)数据、二维(2D)数据、三维(3D)数据、多维(multidimensional)数据、时态(temporal)数据、层次(tree)数据和网络(network)数据。信息可视化方法根据不同的数据也可以划分为以下七类:一维信息可视化、二维信息可视化、三维信息可视化、多维信息可视化、时间序列信息可视化、层次信息可视化和网络信息可视化。信息可视化和科学可视化有一定的区别,科学可视化是空间数据场的可视化,其重点放在如何真实、快速地显示三维数据场上;信息可视化则是指非空间数据的可视化,主要是用图像来显示多维的非空间信息,使用户加深对信息含义的理解,同时利用图像的形象直观性来指引检索过程,加快检索速度。

信息可视化可以处理类型繁多的大数据,本节根据数据特点将其分为以下几类:分类数据、时间序列数据、空间数据、层次数据和文本数据。其中,分类数据是具有两个或多个类别的变量,类别没有内在排序,也没有时间变化趋势,通常使用一维标量法进行可视化分析;时间序列数据是指带有时间属性,会随着时间变化的数据,它又包含了需要基于过去的时间数据进行分析的时间属性数据和需要实时关注变化情况的流数据;空间数据是指包含空间维度的数据,空间数据中的点数据对象通常是地理空间中离散的点,具有经度和纬度的坐标,但不具备大小尺寸,空间数据中的线数据通常指连接地图上两个或更多地点的线段或者路径,空间数据中的面数据(区域数据)通常是通过各个地理区域的面积来描述不同的地理位置对应的对象数据;层次数据是一种着重表达个体之间的层次关系,抽象成树结构,表达包含和从属等关系的数据;文本数据就是各种文字数据,比如物品清单、人员信息等。图3.14展示了多种不同的信息可视化案例。

图3.14 多种不同的信息可视化案例

3.可视分析

可视分析被定义为以可视交互界面为基础的分析推理科学,它将图形学、数据挖掘、人机交互等技术融合在一起,形成人脑智能和机器智能优势互补与相互提升。数据可视化可以是静态的或交互的:静态可视化为用户提供了面前的单一视图;交互式数据可视化大屏使用户能够深入研究数据并提取和检查同一数据集的各种视图,从而选择希望以可视化格式查看的特定数据点。为了能够从数据中获得最佳见解,并从数据分析中获得最大收益,需要无缝结合可视化分析和数据可视化。图3.15展示了多种不同的可视分析案例。

数据可视化的实现大都借助于编程。可视化有很多常用的编程库,如D3.js、Recharts、Victory、React-vis、V Charts、Trading Vue.js、Chartkick、Flexmonster、Webdatarocks、ApexCharts、Chart.js、Echarts、Frappe Charts、Nivo、Google Charts、amCharts、CanvasJS、Highcharts、Zoomcharts,它们都是基于JavaScript的。另外,基于Python的探索式可视化库有Matplotlib、Seaborn、Pyecharts、Missingno等,还有一些基于Python的交互式可视化库,如Bokeh、HoloViews、Plotly、pygal、plotnine、Altair、ggplot、Gleam。

图3.15 多种不同的可视分析案例

另外,比较流行的可视化软件有tableau、Power BI、Dagoo等,这些软件使得可视化简单易做。如果是零编程基础者,也可以使用RAWGraphs、ChartBlocks、Qlik-View、Datawrapper、Visme、Grow、iCharts等图表工具,Infogram、Visual.ly等信息图工具,InstantAtlas等地图工具,Geiph等关系网络图工具以及Wolfram|Alpha等数学图形工具。如果作为开发者使用可视化软件,可以使用ECharts、D3.js、Plotly、Chart.js、Google Charts、Ember Charts等编程库。

若想了解更多关于可视化的信息,可以关注期刊IEEE Transa-ctions on Visualization and Computer Graphics、重要会议IEEE VIS、面向生物领域的会议网站www.biovis.net,以及面向经济领域的可视化网站www.econvis.cn等。