前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何画一幅好图 - 2. 数据映射美学

如何画一幅好图 - 2. 数据映射美学

作者头像
用户5753894
发布2021-07-29 10:01:39
7350
发布2021-07-29 10:01:39
举报
文章被收录于专栏:王的机器王的机器

每当我们可视化数据时,我们都会将数据对应值(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 轴 (位置尺度)
  • 功率映射到颜色 (颜色尺度)
  • 重量映射到大小 (大小尺度)
  • 气缸数目映射到形状 (形状尺度)

显示五个变量中有四个(位移,燃料效率,功率和重量)是连续数值变量。,其余的一个(气缸数目)是离散数值变量或分类有序变量。

同学们,你们学会了么?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王的机器 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 美学和数据类型
  • 2 从数据值映射美学值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档