数据可视化基础——数据模型
本系列「数据可视化基础」文章共三篇,介绍可视化中最基础、最重要的一些概念、理论。这篇为第二篇,主要介绍数据模型 (opens in a new tab),另两篇则主讲可视化流程 (opens in a new tab)和视觉编码 (opens in a new tab),建议从可视化流程看起。 原文地址:http://geekplux.com/2017/01/02/basics-of-data-visualization-data-model (opens in a new tab)
数据说白了就是一组可定性或可量化的值。随着计算机存储能力的大幅提高,人们对于数据的关注与日俱增,「大数据」一词近几年来也被人们频频提及。而数据可视化的主要任务是将数据转换为易于感知的图形。因此,为了更准确更形象的表达数据,我们需要了解一些数据相关的概念。
数据模型与概念模型
为什么数据能代表我们的世界?要回答这个问题,我们得先了解数据和概念两个模型。
数据模型是一组数字或符号的组合,它包含数据的定义、类型等,可以进行各类数学操作等。概念模型描述的是事物的语义或状态行为等。
现实 => 概念 => 数据
现实世界可以用概念模型来描述,而概念模型又可以用数据模型来描述。经过两层抽象,数据便可以描述我们的现实生活中的方方面面。
数据类型
一个东西具体归为哪一类,取决于我们用什么标准划分,数据亦然。
从数据在计算机中的存储可分为浮点数、整数、字符等;从关系模型的角度分,数据又可以分为实体和关系两类;从数据的结构来分,可以分为一维、二维、三维、多维、时间序列、空间序列、树型、图型等等[3];还有很多的分类方法,我们暂时先不讨论,把关注点聚焦到和数据可视化有关的分类方法上。
按照测量标度来分,数据一般被分为四类:类别型、有序型、区间型、比值型。
- 类别型数据用于区分事物。例如,人可以分为男女,水果能分为苹果香蕉等。
- 有序型用来表示对象间的顺序关系。例如,我们的身高可以从矮到高,学生的成绩可以从低到高排列等。
- 区间型用于对象间的定量比较。例如,身高 160cm 与身高 170cm 相差 10cm,而 170cm 与 180cm 也相差 10cm,它们俩的差值是相等的。由此可见,区间型数据基于任意的起始点,所以它只能衡量对象间的相对差别。
- 比值型用于比较数值间的比例关系。例如,体重 80kg 是体重 40kg 的两倍。
不同的数据类型适用于不同的操作[1]:
数据类型 | 操作 | 集合操作 | 统计操作 |
---|---|---|---|
类别型 | =、≠ | 互换元素位置 | 类别、模式、列联相关 |
有序型 | =、≠、>、< | 计算元素单调递增(减) | 中值、百分位数 |
区间型 | =、≠、>、<、+、- | 元素间线性加(减) | 平均值、标准方差、等级相关、积差相关 |
比值型 | =、≠、>、<、+、-、×、÷ | 元素间相似度 | 变异系数 |
不过,在数据可视化中,我们通常不特别区分区间型和比值型,将其统称为数值型。进而可将数据类型进一步精简为三种:类别型、有序型、数值型。具体为什么要分为这三类,我相信你看完下一篇视觉编码 (opens in a new tab)之后会完全明白。
例子
说了那么多,都比较抽象,不如直接来看个例子。下面是一个简单的数据表,每一行通常称作一条记录,每一列称作一个字段,共有几个字段,则通常就说这份数据有几个维度。
id | 类型 | 款式 | 尺码 | 销量 | 年增长 |
---|---|---|---|---|---|
1 | 男款 | 上衣 | L | 50 | 10% |
2 | 女款 | 上衣 | S | 35 | 5% |
3 | 女款 | 裤子 | M | 40 | 20% |
4 | 男款 | 上衣 | XL | 30 | 15% |
对照我们上文的概念,不难判断出上表中:
- 类型、款式为类别型数据;
- id、尺码为有序型数据;
- 销量和年增长为数值型数据。
总结
至此,其实本文的任务就已经完成了。通篇传递的最重要的知识就是数据可视化中的三大数据类型,消化了这点,下一篇视觉编码 (opens in a new tab)就能更好的理解。欢迎各位在我博客文末留言讨论(如果看不到评论框可能是因为你没有科学上网)。
参考文献
- [1]陈为 沈则潜 陶煜波. 数据可视化[M]. 电子工业出版社, 2013. (opens in a new tab)
- [2]浙江大学-陈为、巫英才数据可视化课程 (opens in a new tab)
- [3]Shneiderman B. The eyes have it: a task by data type taxonomy for information visualizations[C]// Visual Languages, 1996. Proceedings. IEEE Symposium on. IEEE Xplore, 1996:336-343.
- [4]CSE512 Data Visualization (Spring 2016) (opens in a new tab)