数据可视化基础 | 青训营笔记

331 阅读10分钟

数据可视化基础 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第16天 与大家分享数据可视化的基础知识,包括数据可视化的基础及应用实战,不足之处欢迎大家批评指正!

01 什么是数据可视化

什么是数据可视化?

Anything that converts data into a visual representation(like charts,graphs,maps,sometimes even just tables).

任何将数据转化成可视化呈现形式的工具(像图表、关系图、地图、表格)

image.png

公元前6200年的人类地图 image.png

数据可视化分类

  • 科学可视化

科学实验数据的直观展示

image.png

  • 信息可视化

对抽象数据的直观展示

image.png

  • 可视化分析

对分析结果的直观展示,及交互式反馈,是一个跨领域的方向

image.png

为什么要可视化?

  1. 记录信息
  2. 分析推理
  3. 证实假设
  4. 交流思想

例子:安斯库母四重奏

数据的直接呈现

image.png

数据图表的绘制

image.png

建议:分析、科研,分析数据时绘制数据图表,发现数据的分布规律

02 可视化设计原则和方法

糟糕的可视化呈现

image.png

错误的可视化呈现

image.png

常见的错误可视化

  1. 透视失真

image.png

  1. 图形设计& 数据尺度

image.png

  1. 数据上下文

image.png

透视失真

  • 如果数字是由视觉元素表示的,那么它们应该与视觉元素的感知程度成正比

  • 使用清晰、详细、彻底的标签,避免图形失真、含糊不清

image.png

图形设计 & 数据尺度

图形的每部分都会产生对其的视觉预期(Visual expectation)

这些预期往往决定了眼睛实际看到的东西

错误的数据洞察,产生于在图形的每个地方不正确的视觉预期推断

典型例子:轴刻度,我们期望它从始至终保持连贯且一致

image.png

数据上下文

image.png

谎言因子(Lie Factor, LF)

谎言因子:衡量可视化中所表达的数据量与数据之间的夸张程度的度量方法。

谎言因子 = 数据所对应的图形

  • LF=1,我们认为图表没有对数据实时进行扭曲,是一个可信的可视化设计
  • 实际中,应当确保各部分图形元素的LF在[0.95,1.05],否则所产生的图表丧失了基本可信度

可视化设计原则

正确地表达数据中的信息而不产生偏差与歧义

An excellent visualization design gives to the viewer the greatest number of ideas in the shortest time with the least ink in the smallest space.——Edward R.Tufte

一个出色的视觉设计可在最短时间内,用最少的空间、用最少的笔墨为观众提供最多的信息内涵。

  • 准确地展示数据

  • 节省笔墨

  • 节省空间

  • 消除不必要的“无价值”图形

  • 在最短的时间内传达最多的信息

最大化数据墨水占比(Data-Ink Ratio)

  • 可视化图形由墨水 + 空白区域构成
  • 数据墨水:不可擦除的核心部分
  • 擦除数据墨水将减少图形所传达的信息量
  • 数据墨水占比:可视化图形中用于表达核心数据的“墨水”在整体可视化中所使用的墨水中的比例

image.png

image.png

  • 案例 绝大多数墨水都是数据墨水——用于绘制散点和节省标签

10%-20%的墨水是非数据墨水——用于绘制坐标轴和刻度线,并非所有的非数据墨水都没有用(如坐标轴信息) image.png

  • 提高Data-ink ratio

两个擦除原则:

  1. 擦除非数据墨水
  2. 擦除冗余的数据墨水 非数据墨水:不能描绘有价值信息的墨水(并非所有都无用,如坐标轴信息)

冗余的墨水重复显示信息

image.png

可视化设计方法

  • 最重要展现数据
  • 合理范围内,最大化数据墨水
  1. 擦除非数据墨水
  2. 擦除冗余的数据墨水

03 视觉感知

什么是视觉感知?

可视化致力于外部认知,也就是怎样利用大脑以外的资源来增强大脑本身的认知能力

image.png

视觉感知 指客观事物通过人的视觉在人脑中形成的直接反映

认知过程

心理认知学将认知过程看成由信息的获取、分析、归纳、解码、储存、概念形成、提取和使用等一系列阶段组成的按一定程序进行的信息加工系统。

科学领域中,认知包含注意力、记忆、产生和理解语言、解决问题,以及进行决策的心理过程的组合。

image.png

相对判断和视觉假象

  • 例1 image.png

image.png

通过不同颜色标记,便于判断

  • 例2 A、B色块谁的颜色更深?

image.png

image.png

结论:一样深

结论

  • 人类视觉系统观察的是变化,而不是绝对值,并且容易被边界吸引

  • 可视化设计中,设计者需要充分考虑到人类感知系统的这些现象,使得设计的可视化结果不会存在阻碍或误导用户的可视化元素

视觉感知

引导注意力,高效传达信息

格式塔学派

image.png

  • 格式塔理论 格式塔学派的理论核心是整体决定部分的性质,部分从属于整体。结构比元素重要,视觉形象首先作为统一的整体被认知。感知的事物大于眼睛见到的事物。

格式塔理论(Gestalt Laws)较为系统地对人类如何发现图形元素之间的相关性进行了全面总结,被广泛应用在视觉设计中。

image.png

  • 原则
  1. 就近原则(Proximity)

视觉元素在空间距离上相距较近时,人们通常倾向于将他们归为一组。

将数据元素放在靠近的位置,突出它们之间的关联

image.png

image.png

  1. 相似原则(Similarity)

形状、大小、颜色、强度等属性方面比较相似时,这些物体就容易被看作一个整体。

image.png

image.png

  1. 连续性原则(Continuation) 人们在观察事物的时候回自然地沿着物体的边界,将不连续的物体视为连续的整体

image.png image.png

  1. 闭合原则(Closure) 有些图形可能本身不完整或不闭合,但主体有一种使其闭合的倾向,人们就容易感知整个物体而忽略未闭合的特征。

image.png image.png

  1. 共势原则(Common movement) 如果一个对象中的一部分都向共同的方向运动,那这些共同移动的部分就被感知为一个整体。

image.png

  1. 对称性原则(Symmetry) 对称的的元素被视为同一组的一部分。

image.png

image.png

  1. 图形与背景关系原则(Figure-ground) 大脑通常认为构图最小的物体是图形,更大的物体是背景。

和凹面元素相比,凸面元素与图形相关联更多。

image.png

image.png

04 视觉编码

什么是视觉编码?(Visual Encoding)

法国制图学家[1918-2010]Jacques Bertin提出"Semiology of Graphics"[1967]视觉编码的理论原则:

视觉编码是一种将数据信息映射成可视化元素的技术。

数据信息:属性 + 值

可视化元素:可视化符号 + 视觉通道

image.png

可视化符号(Mark)

可视化符号用于在可视化当中表现数据元素或元素之间的关联。

  • 表示元素时:点、线、面

image.png

  • 表示关系时:闭包、连线

image.png

视觉通道(Channel)

基于数据属性,控制可视化的符号展现昂视,例如,点根据其所代表的数据属性的不同可有不同的形状与颜色。

两种类型

  • 数量通道(Magnitude Channel) 显示数据的数值属性(定量/定序)

包括:位置、长度、角度、面积、深色、色温、饱和度、曲率、体积

  • 标识通道 显示数据的分类属性(是什么/在哪里)

包括:空间区域、色向、动向、形状

视觉编码优先级

  • 数量通道 位置通道最为精确,其次是长度、角度、面积、深度、色温、饱和度、曲率,最后是体积。

  • 标识通道 划分空间区域最有效,其后依次是色向、动向、形状。

image.png

视觉编码表达案例

image.png

image.png

image.png

image.png 条形面积更容易估计(对图形长度通道认知的准确度高于面积)

05 基础统计图表

基础图表——柱状图(Bar)

  • 将柱子的高度(或宽度)映射到数值大小
  • 最基础的柱形图,需要一个分类变量和一个数值变量
  • 柱状图必须以0为基准线,可以表示正值或负值
  • 在柱状图中,柱子可以分组展示
  • 柱状图是比较分类的数据的最佳选择

image.png

基础图表——饼图(Pie)

  • 每个扇形的弧长(以及圆心角和面积)大小,表示该种类占总体的比例
  • 饼图最显著的功能在于表现占比
  • 饼图一般需要一个分类数据字段、一个连续数据字段
  • 分类字段的数据,在图表使用的语境下,应当构成一个整体(例如一班、二班、三班,构成了整个高一年级),而不能是独立的、无关的。
  • 由于饼图用面积取代了长度,从而加大了对各个数据进行比较的难度,当需要对数据进行比较分清大小(尤其是数据接近时)柱状图更加适合

image.png

image.png

基础图表——散点图(Scatter)

  • 一般通过点在空间上的位置信息来编码数据
  • 点可以根据需要绘制成不同的颜色
  • 点可以是圆形或其他形状。形状也是一个重要的视觉通道,用来编码不同数据信息
  • 可通过更复杂的组合图形(glyphs)来编码多维度数据
  • 散点图适用于分析变量之间是否存在某种关系或相关性
  • 散点图适用于分析变量之间相关性的强弱,可以根据图上数据点的密度来确定相关性强弱

image.png

image.png

折线图

大多数情况下,折线图适用于x轴为连续数据的场景,但:

  • 也可在x轴为离散数据时使用;

  • 甚至可以用于分类数据时使用,如果分类数据的顺序是有意义的

以上两种情况在插值计算时要格外注意

image.png

image.png

选择合适的图表

image.png

06 面向前端的可视化工具

D3

D3.js是用于数据可视化开源的JavaScript函数库,被认为是最好的JavaScript可视化框架之一

简单柱状图示例:

observablehq.com/@d3/bar-cha…

image.png

Vega

Vega是一种可视化语法,通过其声明式语言,可以用JSON格式描述可视化语言外观和交互行为,并使用Canvas或SVG生成视图。

image.png

image.png

image.png

G2

一套面向常规统计图表,以数据驱动的高交互可视化图形语法,具有高度易用性和扩展性。使用G2,可以无需关注图表各种繁琐的实现细节,一条语句即可使用Canvas或SVG构建出各种各样可交互统计图表。

image.png

image.png

image.png

Echarts

使用JavaScript实现的开源可视化库,可以流畅运行在PC和移动设备上,兼容绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表

image.png

  • 简单柱状图示例

echarts.apache.org/examples/zh…

image.png

image.png