24.4. 数据#
可视化的处理对象是各种类型的数据。 数据是可视化的原材料,深入理解数据的特点与结构是实现有效可视化的基础。 本节将从数据的定义与分类、数据的获取与预处理、数据可视化的挑战三个方面,系统地阐述可视化中的数据基础知识。
24.4.1. 什么是数据#
数据是客观世界的抽象记录,是信息表达的载体,也是可视化的核心原料。其本质是通过符号、数字、文字、图像等形式对现实世界的观察、测量或计算结果进行编码。
24.4.1.1. 数据分类#
数据分类是理解其特性和选择可视化方法的基础,常见的分类维度包括:
1. 按数据结构:
结构化数据(Structured Data): 结构化数据具有固定的格式和预定义的数据模型,通常以表格的形式存储在关系型数据库中。每个数据项都有明确的字段和数据类型,不同数据项之间的关系也有明确定义。结构化数据的特点是高度组织化,易于查询、分析和处理。 常见的结构化数据包括:
关系型数据库中的数据表,如 MySQL、Oracle、SQL Server 等。
电子表格中的数据,如 Excel、CSV 文件等。
具有固定格式的日志文件,如 Web 服务器日志、应用程序日志等。
半结构化数据(Semi-structured Data) 半结构化数据介于完全结构化和非结构化之间,具有一定的结构和组织,但不如结构化数据严格。半结构化数据通常以树形结构或图形结构来表示,数据项之间的关系相对松散。常见的半结构化数据格式包括 XML、JSON 等。 常见的半结构化数据包括:
XML 文档,如 Web 服务的响应、配置文件等。
JSON 数据,如 Web API 的响应、NoSQL 数据库(如 MongoDB)中的文档等。
电子邮件,包含结构化的头部信息和非结构化的正文内容。
HTML 文档,包含结构化的标签和非结构化的文本内容。
非结构化数据(Unstructured Data): 非结构化数据没有预定义的数据模型或组织结构,通常以自由格式存储。非结构化数据的特点是多样性和不可预测性,难以用传统的数据库技术直接处理和分析。非结构化数据占据了当今数据的绝大部分。 常见的非结构化数据包括:
文本文档,如 Word 文档、PDF 文件、电子邮件正文等。
图像和图形文件,如 JPEG、PNG、BMP 等。
音频和视频文件,如 MP3、WAV、MP4、AVI 等。
社交媒体数据,如推文、帖子、评论等。
传感器数据,如物联网设备采集的原始数据。

图 24.12 不同数据结构示例。左:结构化的表格数据;中:半结构化的 Web 响应数据;右:非结构化的文本和图片。图源:[CYN+24]。#
2. 按数据测量尺度:
定量数据(quantitative data): 定量数据以数值形式表示,具有明确的数学意义,支持算术运算(如加减法)。其测量尺度为定距尺度(interval)或定比尺度(ratio),能够反映事物的数量、强度或程度差异。 定量数据一般可分为:
连续型定量数据:取值为不可数个,可在区间内无限细分,如气象站记录的每小时温度、患者血压值,股价等。
离散型定量数据:取值为可数的有限或无限个数,如网站点击次数、电商每日订单数、城市人口数量等。
定序数据(ordinal data): 定序数据是用于表示类别之间的顺序或等级关系、且无法量化具体差异程度的数据类型。其测量尺度为顺序尺度(ordinal),仅支持排序(如 A > B > C),不满足加减运算。 例如:
主观评价数据:如用户满意度评分,疼痛等级等。
等级分类数据:如教育程度,产品评级等。
阶段划分数据:如癌症分期, 项目进度等。
定类数据(nominal data): 定类数据表示无顺序或等级差异的纯分类,类别之间没有高低顺序或程度差异,仅用于区分事物属性。其测量尺度为名义尺度(nominal),仅支持频次统计(如出现次数、占比),无法进行排序或数学运算。 例如:
固有类别数据:人口属性如性别、血型,地理分类如国家、省份等。
人工编码数据:产品类型如手机、笔记本电脑、平板电脑等,行业分类如金融、教育、医疗、制造业等。
数据的分类是构建有效分析框架的基石,不同的分类方式服务于不同的分析目标。 数据分类不仅可以界定技术工具的选择边界(如关系型数据库适配结构化数据,自然语言处理应对非结构化文本),也可以规避方法论误用的风险(如对定类数据计算均值)。 理解分类的本质,才能在可视化时根据数据的不同特点来采取不同的处理与映射方式,从而从数据中提取有效信息、从信息中凝练知识。
24.4.2. 数据获取与处理#
获取并预处理数据是可视化流程的第一步,会直接影响最终结果的表达力。本节将系统阐述传统可视化中数据获取的途径、方法及处理流程。
24.4.2.1. 数据获取途径与方法#
可视化研究的数据获取包括并不限于以下途径:
1. 实验观测数据
实验观测数据通过受控环境下的物理设备或人工记录获取。 例如,气象站通过温度、湿度传感器记录实时气候数据,实验室通过显微镜拍摄细胞分裂过程生成时序图像序列。 此类数据通常来源于科学研究(如天体光谱分析、材料力学性能测试),其质量高度依赖仪器精度与实验设计,但可能存在采样频率受限、设备误差累积等问题。
2. 公开数据集
公开数据集由学术机构、政府或企业主动开放,为跨领域研究提供标准化数据源。 典型代表包括加州大学欧文分校发布的经典机器学习数据集(UCI Machine Learning Repository)(如鸢尾花分类数据)、政府开放平台(如美国国家海洋和大气管理局发布的全球气温记录)以及行业数据门户(如谷歌公共数据探索器的经济指标)。 通常来说,此类数据在经过初步清洗与标注后,适用于快速验证可视化算法或进行教育演示。
3. 模拟生成数据
模拟生成数据基于数学模型或计算机仿真构建,用于填补真实数据缺失或探索假设性场景。 例如,计算流体力学软件模拟飞机翼型的气流分布,生成压力场与速度场数据;分形算法生成虚拟地形高程模型以测试三维可视化性能。此类数据可控性强,能够生成极端条件(如超高温、超高压)下的理想化数据,但需要警惕模型假设与真实世界的偏差导致结论失真。
4. 日志与业务系统数据
日志与业务系统数据从软件操作、用户行为或生产流程中自动记录,反映实际业务状态与用户交互模式。 典型场景包括 Web 服务器日志(记录页面访问量与用户 IP)、电商平台的交易流水(包含商品 ID、价格、购买时间)以及工业传感器网络采集的设备运行参数(如转速、温度)。 此类数据具有高时效性与真实性,但常伴随噪声(如爬虫流量)、数据碎片化(多系统孤岛)及隐私合规风险,需通过清洗、关联与脱敏等处理方可使用。
24.4.2.2. 数据处理#
1. 数据清洗
数据原始采集时常常会出现错误、缺失或重复,需要通过数据清洗去除噪声、填补缺失值、规范格式,让数据变得可靠、可用。 比如,把“空值(Null)”替换成 0,去掉重复记录,修正拼写错误等。
数据清洗往往使用以下技术:
缺失值处理:在数据采集过程中,部分字段可能出现缺失。针对缺失值,常见处理方式包括:
删除缺失记录:当缺失值的比例较低(通常低于 5%)且缺失属于完全随机(Missing Completely At Random,MCAR)时,可以直接删除包含缺失值的记录或字段。该方法简单高效,且不会引入新的偏差,但可能导致部分有价值信息的丢失。
缺失值填补:当缺失比例较高,或缺失模式非随机(Missing Not At Random,MNAR)时,更适合采用填补方法。常见的填补方式包括用均值、中位数或众数进行简单填充,或使用插值法(如线性插值、K近邻(KNN)插补)推断缺失值。需要注意,填补方法可能会改变原有数据的统计特性,因此需谨慎选择。
异常值检测:异常值是指显著偏离正常模式的数据点,若不加以处理,可能对后续分析产生不利影响。常用的检测方法包括:
统计方法:基于Z分数(Z-score)的方法,通过标准化后识别绝对值大于3的异常数据点;或使用四分位距(interquartile range,IQR)方法,识别超出上下四分位数 1.5 倍范围的离群值。
聚类方法:利用密度聚类(如 density-based spatial clustering of applications with noise,DBSCAN)等无监督学习方法,将数据划分为密集区域,并将孤立点判定为异常。
去噪:原始数据常常包含噪声,需通过去噪技术提高数据质量。常见方法包括:
滤波算法:如移动平均滤波器(moving average filter),适用于平滑时序数据,消除短期波动;中值滤波(median filter)则常用于图像处理,有效去除椒盐噪声(也被称为脉冲噪声),如图 24.13 所示。
平滑处理:如 Savitzky-Golay 滤波器,通过在局部窗口内拟合多项式,达到去噪同时保留数据趋势特征的效果,适用于要求保持信号细节的场景。

图 24.13 椒盐噪声及滤波器效果实例。 © Wikipedia#
2. 数据转换
数据转换通过数学运算与结构重组,将原始数据转化为适合分析与可视化的形式。 数据转换常用技术包括:
归一化与标准化:
归一化:归一化将数据缩放到固定范围(通常为 [0, 1] 或 [-1, 1]),有助于加快模型收敛速度,避免因特征尺度差异造成的训练不稳定。典型方法包括最小-最大缩放(Min-Max Scaling):
\[ x' = \frac{x - \min(X)}{\max(X) - \min(X)}。 \]标准化:标准化通过对数据进行线性变换,使其均值为0,标准差为1,适用于服从正态分布的数据,常用于对算法敏感于数据尺度(如K近邻、支持向量机)的场景,常见公式为 z-score 公式:
\[ x' = \frac{x - \mu}{\sigma}, \]其中 \(\mu\) 是样本均值,\(\sigma\) 是样本标准差。
离散化:将连续型数据转换为有限个离散区间或类别,有助于简化模型、提高解释性。
等宽分箱(Equal Width Binning):将数据划分为若干个宽度相同的区间。方法简单,但对异常值敏感。
等频分箱(Equal Frequency Binning):使每个区间包含相同数量的数据点,能够更好地平衡分布。
聚类分箱(Clustering-Based Binning):使用 K-means 等聚类方法,根据数据本身的分布自动确定分箱,适用于数据分布复杂的情况。
特征构造:通过数学变换、组合已有特征或引入外部知识,生成新的、更具区分力的特征。例如:
衍生变量:从时间戳提取“星期几”“季节”,从地址提取“城市”“邮编”。
降维:主成分分析(principal component analysis,PCA)通过线性变换提取出数据中方差最大的方向,既能减少特征数量,又能尽量保留原有信息;t-SNE(t-Distributed Stochastic Neighbor Embedding)方法将高维数据映射到低维空间并侧重保持局部邻域结构,常用于高维数据的可视化探索。
非线性变换:在数据分布严重偏斜时,可以采用对数变换、平方根变换或 Box-Cox 变换等,降低数据偏度,提升模型性能。
3. 数据融合
数据融合旨在整合来自不同来源、不同结构的数据,构建统一的数据视图,支持跨维度分析和更丰富的建模。 常见的数据融合技术包括以下几类:
数据对齐:为保证不同来源数据在时间和空间上的一致性,常采用时间戳对齐方法,通过线性插值或重采样统一不同采样频率的数据;空间数据则通过坐标投影转换进行统一,确保地理信息准确匹配。
实体解析:为消除不同数据源中对同一实体的重复或歧义表述,通常应用记录链接技术,利用编辑距离或 Jaccard 相似度识别重复条目;同时,通过主数据管理,建立全局唯一标识符(如用户ID),实现跨源实体的统一管理。
关联分析:为整合不同数据表或数据集,常使用连接操作,如通过 SQL 中的 JOIN 操作,基于主键字段关联表格数据,或在图数据库中通过边关系实现节点属性的关联查询。
通过数据融合,可以在保证数据一致性的基础上最大化地发挥多源信息的综合价值,提升后续分析和建模的深度与广度。
4. 数据聚合
数据聚合通过对原始数据的汇总,降低数据复杂度,提升可视化性能与可解释性,是数据分析与建模的重要预处理步骤。 常见的数据聚合方法包括:
时间窗口聚合:将数据按固定时间窗口(如小时、天、月)进行汇总,常用于统计销售额、活跃用户数等时间序列指标,平滑波动并揭示趋势。
空间区域聚合:基于地理位置将数据按行政区划(如省、市)或自定义的地理网格(如栅格编码)进行汇总,便于空间分析和区域对比。
分层聚合:在多维分析(OLAP)中,通过上卷(Roll-up)操作,将细粒度数据(如城市级)逐步聚合到更高层次(如国家级),支持从局部到整体的多尺度观察。
数据聚合不仅压缩了数据规模,还能突出整体模式和局部异常,是后续可视化、建模和决策的重要基础。
在数据处理流程中,通过数据清洗确保质量,数据转换优化形态,数据融合打通孤岛,数据聚合简化复杂度,层层递进,帮助研究人员将原始数据转化为可视化可用的高质量输入。
24.4.3. 数据科学的挑战#
24.4.3.1. 数据科学的核心挑战#
数据科学的核心挑战不仅源于数据本身,更与可视化目标(如信息传递效率、认知负载平衡)及技术实现(如实时渲染性能、交互响应速度)紧密关联。
1. 数据质量与预处理瓶颈: 高维稀疏性导致“维度灾难”,影响降维和后续可视化;非结构化数据(如文本、图像)转化过程容易丢失语义细节;缺失值与噪声则干扰可视化的准确性。为此,非线性降维策略、信息保持的结构转化方法和鲁棒的插补与滤波算法的开发与进步十分重要。
2. 实时性与交互性需求: 面对动态数据流和大规模数据,传统图表难以支撑毫秒级更新与高频交互。GPU 性能与内存成为渲染瓶颈,而复杂交互操作又极易产生延迟,因此必须借助增量渲染、图形硬件加速与异步计算等手段缓解压力。
3. 可扩展性与异构环境适配: 不同设备在算力、分辨率上的差异要求可视化工具具备良好的跨平台设计。移动端与边缘设备的计算能力有限,需要通过“边-云协同”实现高效分工。同时,多源异构数据的融合也面临语义一致性与结构对齐问题,影响结果可靠性。
4. 可解释性与伦理风险: 设计与用户认知匹配的可视化方案一直以来是可视化领域的重点,需要尽量避免视觉编码误导、控制好认知负荷,也可以考虑嵌入一定的领域专家知识。另外,敏感数据可视化亦可能侵犯隐私或放大算法偏见,可以考虑引入差分隐私、偏见检测与伦理规范进行技术约束。
24.4.3.2. 应对挑战的技术演进#
为应对上述挑战,数据科学领域正通过方法与工具的持续演化构建系统性解决方案,涵盖数据预处理、实时计算、融合建模与交互设计等多个层面:
1. 自动化数据清洗与质量监控: 基于机器学习的异常检测、缺失填补技术提升了数据预处理效率。实时监控系统能动态发现并纠正数据问题,提升数据流的鲁棒性和可信度。
2. 流数据处理与动态可视化: Apache Kafka、Flink 等框架支持高速数据流的处理与转发,为可视化系统提供稳定的数据基础。WebGL 渲染与 GPU 加速技术支撑毫秒级更新与实时交互。
3. 分布式与边缘计算架构: Spark、Dask 等并行计算框架有效分担计算负载,而边缘-云协同机制则优化了资源分配:边缘节点做数据收集与筛选,云端执行聚合计算与图形生成,实现高效闭环。
4. 多源数据融合与语义协调: 知识图谱与本体论用于跨平台语义统一,多模态融合方法(如联合嵌入学习)可整合图像、文本、传感器等数据,增强可视化的丰富性与深度。
5. 模型可解释性与公平性设计: LIME、SHAP 等工具可解释黑盒模型的决策逻辑;偏见检测算法配合公平性指标(如统计均等性)用于分析并纠正可视化偏差,提升结果可信度。
6. 隐私保护机制嵌入可视化流程: 差分隐私引入机制性噪声保护个体隐私,同态加密技术则使数据在加密状态下也能计算,确保数据分析不越过隐私红线。可视化过程中也应优先使用聚合结果与脱敏信息。
7. 交互式与沉浸式体验的增强: AR/VR 技术为三维数据提供更具沉浸感的分析环境,语音、手势等自然交互形式则提升了系统的响应性和用户参与度,有助于扩展传统可视化的表达边界。
总的来说,可视化所面临的数据科学挑战,本质是数据复杂性、技术约束与人因需求的三重博弈。 解决这些挑战需跨学科协作——数据工程优化预处理流程,计算机图形学突破渲染性能瓶颈,认知科学指导视觉设计,伦理学约束技术边界。 未来研究应聚焦自动化预处理、自适应可视化与负责任设计,在效率、精度与伦理间寻求平衡。