每当我们可视化数据时,我们都会将数据对应值(data value)转换为构成最终图形的可视元素(visual element)。
数据可视化类型很多,如散点图、条形图、饼状图等,但可视化过程精髓都是将数据值“变成”纸上墨水斑点或屏幕上彩色像素。一言以蔽之,
数据可视化将数据值映射到可量化特征。
这些可量化特征(quantifiable features)被称为美学(aesthetics)。
1 美学和数据类型
美学描述了给定图形元素的各个方面,下图提供了几个例子。
位置(position)- 每个图形元素的关键组成部分当然是其位置,其描述了元素所在的位置。在标准的 2D 图形中,我们描述了 x 和 y 坐标。
所有图形元素都具有形状(shape),大小(size)和颜色(color)。
- 形状(shape)- 圆形、正方形、三角形等
- 大小(size)- 具体尺寸
- 颜色(color)-红、黄、蓝、黑等
最后,如果使用线条来可视化数据,其宽度或 DASH-DOT 模式也可作为美学元素(aesthetics)。
除了上图示例之外,还有许多其他美学在数据可视化中可能遇到,例如,
- 如果想显示文本,可指定字体系列(font family)和字体大小(font size)
- 如果图形对象重叠(overlap),可指定部分数据透明(transparent)
数据类型分两类:连续(continuous)和离散(discrete):
- 连续数据值是存在任意精细值。 例如,时间是连续值。在任何两个时间之间比如 50 秒和 51 秒,有任意许多中间指,如 50.5 秒,50.51秒,50.50001 秒等。
- 离散数据值不存在任意精细值。 例如,房间里人数是离散值。房间可以容纳 5 人或 6 人,但不是 5.5。
对于上图中的示例,位置,大小,颜色和线宽可以表示连续数据,但是形状和线型通常只能表示离散数据。
大多数据通常视为数字(number),但数值只是我们可能遇到的几种类型的数据中的两个。除了连续和离散数值之外,数据还可以以离散类别的形式出现,以日期或时间,以及文本。
- 当数据是数字类型(numerical)时,我们称之为定量(quantitative)。
- 当数据是类别类型(categorical)时,我们称之为定性(qualitive)。定性数据的类别变量称为因素(factor),不同类别值称为层级(level),其中
- 因素层级可以无序(unordered),如“男”、“女”
- 因素层级可以有序(ordered),如“优”、“良”、“差”
所有数据类型总结于下表。
从上表可知,定量数据可以是连续或离散,但定性数据一定是离散的。
举个具体例子,下表显示了四个美国地点的平均日常温度的数据集。
此表包含五个变量:月,日,位置,ID 和 温度(以华氏度为单位),其中
- 月是有序分类变量
- 日是离散变量
- 地点是无序分类变量
- ID 是无序分类变量
- 温度是连续变量
2 从数据值映射美学值
要将数据值映射到美学,我们需要指定哪些数据值对应于哪些特定美学值。
- 如果图上包含 x 轴,那么我们需要指定哪个数据值沿着该轴落到的特定位置。
- 如果图上出现了形状或颜色,那么我们需要指定由特定形状或颜色表示的数据值。
数据值与美学值之间的映射是通过尺度(scale)创建的。尺度必须一一对应,即一个数据值对应一个美学值,反之亦然。如果尺度不是一一对应,则数据可视化会变得模棱两可。
下图用尺度来一一连接数据值和美学值。
数据值:数字 1, 2, 3, 4
已被映射到
- 位置尺度:四个不同位置
- 形状尺度:圆形, 正方形, 菱形, 三角形
- 颜色尺度:深蓝, 青蓝, 浅蓝, 透明蓝
对于每种尺度,每个数字对应于唯一的位置,形状或颜色,反之亦然。
举个具体例子,我们将以上数据集中的
- 温度映射到 y 轴 (位置尺度)
- 天映射到 x 轴 (位置尺度)
- 地点映射到颜色 (颜色尺度)
并用实线可视化这些美学,结果得到以下的标准线形图。
上图的可视化方法相当标准,大多数数据科学家可能都会选择以上形式。但其实可视化出来的图真正取决我们要将“哪些变量”映射到“哪个尺度”?
上图将温度映射到 y 轴 (位置尺度),此外还可以将温度映射到颜色 (颜色尺度)。这时候感兴趣的变量是用不同颜色表示,所以需要用颜色的变化来区分不同的温度。
现在将以上数据集中的
- 温度映射到颜色 (颜色尺度)
- 月映射到 x 轴 (位置尺度)
- 地点映射到 y 轴 (位置尺度)
得到以下的热力图。
需要强调的是,上图的两个位置尺度(沿 x 轴和沿 y 轴的位置)不是连续刻度。
- 月是一个有 12 个层级的有序变量
- 地点是一个有 4 个层级的无序变量
两个位置尺度都是离散的。对于离散位置尺度,通常将不同的层级放置在沿轴线的相等间隔中,如果
- 该变量是有序的(比如月),那么需要以适当的顺序放置,从 Jan 到 Dec
- 该变量是无序的(比如地点),那么可以按任意顺序放置,这里我以整体最冷(Chicago)到整体最热(Death Valley)的顺序放置,以产生“从上往下看颜色由深到浅”的感觉。
上面两图总共使用了三个尺度,两个位置尺度和一种颜色刻度。这是基本可视化的典型尺度,但我们可以一次使用超过三个尺度,看下例。
下图使用五个尺度,两个位置尺度,一个颜色刻度,一个尺寸标度和一个形状刻度,并且所有尺度都表示来自数据集的不同变量。
上图使用五个单独的尺度来表示数据:
- 位移映射到 x 轴 (位置尺度)
- 燃油效率映射到 y 轴 (位置尺度)
- 功率映射到颜色 (颜色尺度)
- 重量映射到大小 (大小尺度)
- 气缸数目映射到形状 (形状尺度)
显示五个变量中有四个(位移,燃料效率,功率和重量)是连续数值变量。,其余的一个(气缸数目)是离散数值变量或分类有序变量。
同学们,你们学会了么?