[译] 数据可视化:从数据到图形元素

原文地址:Visualizing data: Mapping data onto aesthetics

当我们谈论数据可视化时,我们实际谈论的是将数据通过系统化、有逻辑的方式转化为最终的视觉呈现。数据可视化图形有很多种类:初看散点图(scatter plot)、饼图(pie)和热力图(heatmap)并没有什么共同点,实际上这些图形背后都有一套基础图形语言:捕获数据,并将数据转化为纸上的墨点,或是屏幕上的像素。其内在本质在于:数据可视化将原始数据映射为直观可量化的视觉特征,我们将其称为图形元素(aesthetics)

1. 图形元素

图片 1.1:图形元素通常包含的信息有 位置(position), 形状(shape), 尺寸(size), 颜色(color), 线段宽度(line width), 线段类型(line type) 等。 有些信息是可以同时是连续型(continuous)离散型(discrete) ,比如 positionsizeline-widthcolor ,而其他通常只能是离散型的。

上图包含了一些基础的图形元素。图形元素有一些关键特征,首先是位置(position),用来描述元素的位置信息。通常在 标准 2D 空间中,用 x, y 来描述位置信息,当然在 1 维 或者 3 维空间有其他的位置描述方式。 然后,所有的图形元素有 形状(shape), 尺寸(size)颜色(color) 等信息,即使我们只是绘制黑白元素,我们也要给图形元素设置合适的颜色用于展示,譬如在白色背景上可以绘制黑色图形,但是白色图形就不行了。最后,我们在有些场景下会应用不同宽度的线段和不同类型的线段(实线、虚线等)。

在上图之外,我们还会遇到更多的图形元素,譬如展示字体是需要考虑字体系列(font family)字体大小(font size),如果要处理图形相互覆盖,还需要考虑到图形透明度变化。

图形元素可以分为两大类:连续型和离散型。连续型含义是任意两个数据之间都可以存在中间状态,比如时间就是连续型的,50s 和 51s 之间还可以存在 50.5s,50.51s 甚至更多。相互在一个房间可人数是离散的,房间可以容纳 5 人或者 6 人,但不能是 5.5 人。图上 position、size、line width,color 可以是连续型的,而 shape 和 line type 通常只能是离散型。

接下来我们来看下需要展示的数据的种类。通常你可能会觉数据应该是数字类型的,但其实数字只是可视化数据中的两个类别而已。如下表所示,除了连续型和离散型数字之外,还可以通过离散型类别(cetegory)、日期或者时间形式(date/time)和文本(text)形式呈现。如果数据类型是数字,我们称之为定量(quantitative),如果数据类型是其他类型,我们称之为定性(qualitative)。定性的变量被称为因子(factor),不同类别(category) 称为级别(level)。因子的级别通常是无序的(dog, cat, fish),不过也可以是有序列表(good,fair,pool)。

变量类型示例变量分布描述
连续数字1.3, 5.7, 83连续型连续的数字类型,可以是整数,也可以是小数
离散数据[1, 2, 3]离散型离散的数字单元
无序类别dog, cat, fish离散型类别之间无顺序关系,也被称为因子
有序类别good,fair,pool离散型类别之间有顺序关系,也被称为有序因子
日期或时间Jan. 5 2018, 8:03am离散型 or 连续型查看一段连续时间时可以是连续型数据
文本我的名字无 or 离散型普通文本

表格 2.1

下面我们来看一组具体数据,来自美国 4 个城市的天气数据。数据包含了 5 列信息:Month,Day,Location,Station ID, Temperature。其中 Month 是有序因子(ordered factor),Day 是离散的数字类型,location 和 Station ID 是无序因子(unordered factor),而 Temperature 则是连续的数字值。

表格 2.2 一组真实天气数据

MonthDayLocationStation IDTemperature
Jan1ChicagoUSW0001481925.6
Jan1San DiegoUSW0009310755.2
Jan1HoustonUSW0001291853.9
Jan1Death ValleyUSC0004231951.0
Jan2ChicagoUSW0001481925.5
Jan2San DiegoUSW0009310755.3
Jan2HoustonUSW0001291853.8
Jan2Death ValleyUSC0004231951.2
Jan3ChicagoUSW0001481925.3
Jan3San DiegoUSW0009310755.3
Jan3Death ValleyUSC0004231951.3
Jan3HoustonUSW0001291853.8

2. 比例尺:将数据映射到图形元素

想实现将数据映射到图形元素,首先需要指定哪些数据类别对应到图形元素哪些特征。举个例子,如果图形上有 x 轴,那我们就需要考虑指定哪些数据分布在坐标轴上的不同位置(position),类似的,我们还要考虑哪些数据来对应到特定的形状(shape)颜色(color),这种数据和图形元素之间的对应关系就是通过比例尺(scale) 来创建的。比例尺定义了数据和图形元素之间一一映射关系。也就是说,比例尺是一对一的,对于每一个数据集,都只能是一个图形元素特征,反之亦然。如果比例尺不是一一对应的,数据可视化就会变得模糊不清。

图片 2.2:比例尺连接数据集到图形元素。图上数字 1 到 4 分别建立了和位置(position)、形状(shape)、颜色(color)的映射关系。在每个比例尺上,每个数据都对应一个唯一的图形特征,反之亦然。

我们再来看实际一点的,以 表格2.2 数据为例,我们可以分别将 month 和 temperature 映射到 x 轴和 y 轴上。而 location 则作为颜色分类,并生成实线线段。最终生成的效果就是标准的折线图,展示 4 个城市在一年不同月份的温度趋势图。

图 2.3:4个城市的温度趋势折线图,x 轴代表月份,y 轴代表温度,而颜色用来区分不同城市

图 2.3 是非常常见的用于展示温度趋势的折线图,也是大部分数据科学家凭直觉就会选择的可视化实现。然而,我们也可以指定不同变量来生成不同比例尺。举例来说,相比于将 temperature 映射到 y 轴,location 映射为颜色,我们可以反着来。此时我们关心的关键变量(temperature)就通过颜色来呈现,我们需要定义更大的颜色范围来传递更有价值的信息。此时,我会选择用正方块来替换折线,一个色块对应一个城市和月份,下图我按照每月的平均温度进行对色块的着色。

图 2.4:此时 x 轴还是月份,但是 y 轴变成了城市,而颜色通过温度来区分

我要强调一下,图 2.4 上有两种基于位置的比例尺,分别是基于 x 轴分布的 month,和基于 y 轴分布的 location,且两者都不是连续型变量。其中 Month 是有序因子并包含 12 个级别(level), 而 Location 是 4 个层级的无序因子,两者都是离散型比例尺。离散型数据的因子通常在坐标轴上等间距分布,如果是有序的(比如 Month),则会按照适当的顺序分布,如果是无序的(比如 Location),那么可以按照需求自由分布。图 2.4,我按照从冷(Chicago)到热(Death Valley)生成一个渐变效果,当然我也可以采用其他的排序方式。

图 2.3 和图 2.4 都应用了 3 个比例尺 —— 2 个基于位置的比例尺和 1 个基于颜色的比例尺,这是可视化图形的常用比例尺数量,当然我们也可以应用更多的比例尺数量。图 2.5 上就应用了 5 个比例尺 —— 2 个位置比例尺,1 个 颜色比例尺,1 个尺寸比例尺和 1 个形状比例尺,每个比例尺都代表了数据的不同维度。

图 2.5: 汽车燃油效率与排量之比。图上应用了 5 个维度来展示数据。(i) x轴(发动机排量); (ii) y 轴(燃油机效率); (iii) 点颜色(功率); (iv) 点尺寸(汽车重量); (v) 点的形状(气缸数量); 4/5 的维度(排量、效率、功率、重量)是连续型数据,只有剩下的气缸数量字段可以认为是离散型数字,或是定性有序类型。

转载于:https://juejin.im/post/5c6e4fb76fb9a049b5076906

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值