【读书笔记】The Grammar of Graphics - 3. Data

3. 数据

通常,数据被认为是数字性,一般通过机器、统计、测试、调查等方式获取到。

In a more general sense,
however, data are symbolic representations of observations or thoughts about
the world. As we have seen, we do not need to begin with numerals to create
a graphic. Text strings, symbols, shapes, pictures, graphs themselves, can all
be graphed. ()

“然而,从更广义的概念来讲,数据是一种对世界的观察与想法的符号化的表示。正如我们所见到的,我们不一定需要数字来创建图形。文本字符,符号,形状,图片以及图本身均可被绘制成图形。”

旧的绘图系统往往需要单纯的无结构的文件通过简单的“行与列”的方式存储。这种数据的存储方式一定程度上限制可以被绘制的图表类型(通常的柱状图、折线图、饼图、散点图)。

新的绘图系统将数据认为成数据源、这些数据源被认为是有一定潜在的内部结构的;并且可以支持流数据

本章主要将数据划分为三类:事实数据(empirical data)抽象数据(abstract data)以及元数据(meta data)

3.1 数据函数

table3.1.png
事实函数(Empirical Function)对数据的列进行操作(改变数据的结构,不改变数据的内容)。

  • col() 是将数据中的一列提取到一个变量(variable)中。
    • unit() 参数定义了度量单位
    • weight() 定义了被统计时对应的权重
  • map() 为映射
  • stream() 用来提取流数据
  • image() 处理图像数据
  • sample() 用来抽样
    • sample.srs(sample random)
    • sample.jackknife(Tukey, 1958)
    • sample.boot(Efron & Tibshirani, 1993)
  • reshape() 将一个矩阵或表格变形为一列向量的形式。
    • define1.png
    • 需要注意的是函数的名字表示的是将该形状转为向量,而不是转化成该形状。

抽象函数(Abstract Function)对行进行操作(生成原本不存在的数据)

  • iter() 为迭代器, iter(1, 10, 1) 会生成一个1到10的数列

元函数(meta function)负责将元数据与数据源关联起来。

3.2 事实数据(Empirical Data)

对于事实数据的理解,有着两种截然不同的观点。
现实主义(realist)认为数据是事物潜在本质的表现,这种观点认为数据代表着事物普遍规律与背后的本质(即数据是一种更深层次事物运行原理的本质)。
而名义注意则认为数据就是他们所直接表述的东西,是一种相对直接的描述。

3.2.1 重构数据(Reshapeing Data)

由于矩阵是可以转置的,所以我们可以在更合适的情况下选择将矩阵转置后再进行可视化。或者,我们也可以将矩阵中的一个子集进行可视化。
一个相关矩阵是一个由相关系数构成的对称矩阵,对这个相关矩阵转进行可视化,我们可以尝试将其转为一个独立的变量(这里可以理解为展开为一个向量,如[0.1, 0.2, 0.2…0.5]的形式) reshape.low() 表示将相关矩阵中左下角(不包含对角线)的三角形展开,最终生成如图3.2所示的图表。
figure3.2.png
我们还可以使用另外一种方式来可视化该矩阵,这次,我们将创建3个变量,行,列以及相关性的值(映射到颜色上)。我们使用 reshape() 来获取相关矩阵中行与列的下标(这个之前提到过,reshape是将一个有形状的矩阵转化为一维向量,最后的参数决定最终一维向量中成员的含义,这里”rowname”代表取行的信息,即行号,下标;value代表取值),使用有颜色的“装箱(bin)的多边形(polygon)”来代表相关系数,最终得到图3.3(关于bin的概念在第八章中会讲)
figure3.3.png

3.2.2 自助法(Bootstrapping)

Efron 与 Tibshirani (1993) 提出了一种随机有放回的抽样方法,即自助法(bootstrapping)。这种方法可以在传统方法失效时计算出置信区间。通常,自助抽样法的样本容量与数据集的大小一样(即抽取、放回,直至抽取的量与整体大小一致),这使得我们可以对一个整体进行所次抽样。
我们使用一个基于1000次自助抽样得到的直方图与平均数的直方图为例,military代表一个国家的军费开支。

注,这里原文感觉有点模糊,根据下文整体推断应该3.4的抽样样本数为25,数据集大小为1000;
figure3.4.png
图3.4中有两个显著的特征:1) 均值的直方图正偏程度较小。 2) 均值的直方图的方差也较小。
当抽样数大于25时,其分布会更加接近于正态分布(但仍是正偏的)
explain.png

3.3 抽象数据(Abstract Data)

抽象属于往往用来创造一些序列、点阵或者其他由索引下标构成的类型的变量,我们用这些变量来重新组织数据中的信息。

3.3.1 时间序列(Time series)

时间序列数据通常是不包含时间列(字段)的。即便有时会有,我们仍更倾向于使用索引而不是时间来绘图。图3.5是在7秒内,一只猫的视网膜神经节细胞的256次放电行为;这些行为由一张折线图按时间串联起来。
figure3.5.png

3.3.2 计数(Counts)

计数柱状图经常在原始数据中不包含计数字段时被使用。 constant(1) 可以生成一列由1构成的序列,用来辅助计数。我们使用GPL来绘制一张图作为示例
figure3.6.png

3.3.3 数学函数(Mathematical Functions)

绘图系统所运用到的数据有时完全是基于抽象的,这是我们就可以使用一些数学函数来创造相应的变量,这些函数可以很好的表现数据的变化,极值等特性;绘图系统很根据函数计算出相应的定义域与值域,并确定图形的周期、渐进变化等情况进行绘制。
figure3.7.png

3.4 元数据(Meta Data)

由于我们的数据是基于我们使用它们的场景而构建的,所以数据经常包含元数据(meta data)。元数据是指我们观测场景下的一些设定与条件。元数据是数据的数据。
基于相关的元数据与图形语法可以使我们对用户的查询自动化的生成可视化。

3.5 数据挖掘(Data Mining)

数据仓库(data warehouse)、数据挖掘(data mining)和数据库知识探索(Knowledge discovery in databses, KDD)的发展使得其与图形学、统计学和数据管理的区别变得愈加模糊。

3.5.1 MOLAP

MOLAP是基于一个叫做“数据立方体(data cube)”的基本概念。数据立方体是一个多维数组,每一个维度都是一个域(domain),如地理信息或时间信息;这里很有意思,书中说维度代表一个大的域,而不是数据集中某一个维度(一类字段),强调了维度(域)往往是若干有层级关联结构的数据集字段的集合(可以理解为这些字段集合求笛卡尔积)。数据立方体中的每一个单元会包含若干聚合度量,如收入之类的。数据立方体往往在用户操作之前就已经完成运算了。
在数据立方体中探索数据关系往往要用到三种操作:下钻(drill-down)、上卷(drill-up)与深度下钻(drill-through)。下钻是指查看每个子集的聚合,而上卷是指查看当前集合母集的聚合。深度下钻则是指查看若干个集合的笛卡尔积的子集,例如,查看时间与地理下的子集,实际上简单理解就是下钻了多层。

3.5.2 ROLAP

ROLAP提供了一个数据库的数据视图。它实际上是基于用户想要的数据视图生成SQL并进行查询。这种查询在性能上有一定的瓶颈。

3.5.3 数据库的可视化查询(Visual Query of Databases)

在ROLAP与MOLAP中,图形展示往往由关系数据驱动。研究者们正在开始研究与这种方式相反的方法;他们开发了使用视图查询语言而不是SQL的系统。这种方法的实践之一便是GIS系统,基于空间地理关系而不是变量之间的关系。

Papantonakis and King (1995) devised a graphical query language called
GQL, which functions like SQL but operates on graphical objects rather than
relational variables.

这本书的结构也是受到这些研究的影响的,但是,区别在于这本书研究的是图形的结构而不是数据的结构。我们可以期待在未来数据库查询方法与图形展示更够更好的相结合。这种趋势是有静态查询到动态实时交互的需求变化而产生的。

Author: Lobay Kanna
Link: http://lobay.moe/2019/01/13/GoG/3. 数据/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.