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

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

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

1. 图形元素

图形元素

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

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

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

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

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

变量类型 示例 变量分布 描述
连续数字 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 一组真实天气数据get

Month Day Location Station ID Temperature
Jan 1 Chicago USW00014819 25.6
Jan 1 San Diego USW00093107 55.2
Jan 1 Houston USW00012918 53.9
Jan 1 Death Valley USC00042319 51.0
Jan 2 Chicago USW00014819 25.5
Jan 2 San Diego USW00093107 55.3
Jan 2 Houston USW00012918 53.8
Jan 2 Death Valley USC00042319 51.2
Jan 3 Chicago USW00014819 25.3
Jan 3 San Diego USW00093107 55.3
Jan 3 Death Valley USC00042319 51.3
Jan 3 Houston USW00012918 53.8

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

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

scale

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

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

2.3

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

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

2.4

图 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

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

相关文章
相关标签/搜索