学习数据可视化 | 青训营笔记

126 阅读11分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天

一、本堂课重点内容:

本堂课的知识要点有哪些?

  • 认识数据可视化
  • 可视化设计原则和方法
  • 视觉感知
  • 视觉编码
  • 基础统计图表
  • 面向前端的可视化工具

二、详细知识点介绍:

认识数据可视化

什么是数据可视化?

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

  • 任何可以将数据转换为可视化表示的东西 (比如图表、图表、地图,有时甚至只是表格)

数据可视化分类

  1. 科学可视化:对科学实验数据的直观展示。
  2. 信息可视化:对大规模非数字型信息的直观展示。
  3. 可视分析:对分析结果的直观展示,及交互式反馈,是一个跨领域的方向。

为什么要可视化?

  1. 记录信息
  2. 分析推理
  3. 证实假设
  4. 交流思想
  • 快速传递和理解信息 大部分人对于图表信息的理解要比书面信息的理解要快
  • 使维度关联性更加清晰 通过数据的多个维度来分类 、排序、组合与显示,可以看到维度之间的关联和变化
  • 能让显示信息更加直观 用一些简短的图形就能体现那些复杂信息。

可视化设计原则和方法

可视化设计原则

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

  • 准确的展示数据
  • 节省笔墨
  • 节省空间
  • 消除不必要的‘无价值’图形
  • 在最短的时间内传达最多的信息

常见的错误可视化

  • 透视失真
  • 为了美感而夸大或缩小数据差异而省略基线和截断比例
  • 数据太多
  • 选择错误的可视化方法(例如:比较整体的不同部分选择使用折线图,实际上,选择饼图会更加合适)
  • 放大有利数据

数据准确展示

  • 节省笔墨
  • 节省空间
  • 消除“无价值”图形
  • 最短时间中传达出最多的信息

谎言因子

  • 控制图形中的谎言因子(Lie Factor,LF)
  • 谎言因子:衡量可视化中所表达的数据量与数据之间的夸张程度的度量方法。 谎言因子= 数据所对应的图形
  • 当LF=1时,我们认为图表没有对数据实时进行扭曲,是一个可信的可视化设计。
  • 在实际当中,应当确保各部分图形元素的LF在[0.95,1.05]范围内,否则,所产生的图表认为已经丧 失了基本可信度。

最大化数据墨水占比(Date-ink Ratio)

  • 可视化图形由墨水和空白区域组成
  • 数据墨水:可视化图形中不可擦除的部分被称之为“数据墨水”
  • 擦除数据墨水将减少图形所传达的信息
  • 数据墨水占比:可视化图形中用于展示核心数据的“墨水”在整体可视化中所使用的墨水的比例

image.png

不同数据墨水占比的呈现效果

image.png

提高数据墨水占比

  • 两个擦除原则

    • 擦除非数据墨水
    • 擦除冗余的数据墨水
  • 非数据墨水是指不能描绘有价值信息的墨水:

    • 有时,非数据墨水会使数据变得混乱不堪
    • 并非所有的非数据墨水都没有用
  • 冗余的数据墨水描述了信息,但它重复显示了信息

可视化设计方法

  • 最重要的是展现数据 Above all show the data

  • 合理范围内,最大化数据墨水占比 Maximize the data-ink ratio,within reason.

    • 擦除非数据墨水 Erase non-data-ink,within reason.

    • 擦除冗余的数据墨水 Erase redundant data-ink.

视觉感知

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

  • 视觉感知是客观事物通过人的视觉在人脑中形成的直接反映
  • 人类视觉系统观察的是变化,而不是绝对值,并且容易被边界吸引
  • 在可视化设计中,设计者需要充分考虑到人类感知系统的这些现象,以使得设计的可视化结果不会存在阻碍或误导用户的可视化元素。

认知过程

认知心理学将认知过程看成由信息的获取、分析、归纳、解码、储存、概念形成、提取和使用等一系列阶段组成的按一定程序进行的信息加工系统。 科学领域中,认知是包含注意力、记忆、产生和理解语言、解决问题,以及进行决策的心理过程的组合。

相对判断和视觉假象

  • 人类视觉系统观察的是变化,而不是绝对值,并且容易被 边界吸引。
  • 在可视化设计中,设计者需要充分考虑到人类感知系统 的这些现象,以使得设计的可视化结果不会存在阻碍或 误导用户的可视化元素。

结论

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

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

视觉感知

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

  • 研究表明,人类对于颜色、形状、运动,这些视觉属性,是 在不同通道上并行处理的,并且人类能在200ms以内快速辨 别,这些属性被称作具有“预感知”特性。link

  • 在一个通道中表达的信息,不会干扰(很多)在另一个通首 上表达的信息,应当使用不同的视觉通道来描画数据不同方 面的特征。(例如一个标记的颜色,并不会影响)

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

格式塔理论

就近原则(Proximity)

  • 当视觉元素在空间距离上相距较近时,人们通常倾向于将他们归为一组
  • 将数据元素放在靠近的位置,可以突出它们之间的关联性

相似原则(Similarity)

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

连续性原则(Continuation)

  • 人们在观察事物的时候会很自然地沿着物体的边界,将不连续的物体视为连续的整体

闭合原则(Closure)

  • 有些图形可能本身是不完整或者不闭合的,但主体有一种使其闭合的倾向,人们就会很容易地感知整个物体而忽略未闭合的特征

共势原则(Common movement)

  • 如果一个对象中的一部分都向共同的方向去运动,那这些共同移动的部分就易被感知为一个整体

对称性原则(Symmetry)

  • 对称的元素被视为同一组的一部分

图形与背景关系原则(Figure-ground)

  • 大脑通常认为构图中最小的物体是图形,而更大的物体则是背景
  • 跟凹面元素相比,凸面元素与图形相关联更多些

可视化技术栈

具备专业素养的数据可视化工程师一般来说需要掌握以下技术栈:

  • 基础数学:三角函数、线性代数、几何算法
  • 图形相关:canvas、svg、webgl、计算图形学、图论
  • 工程算法:基础算法、统计算法、常用的布局算法
  • 数据分析:数据清洗、统计学、数据建模
  • 设计美学:设计原则、美学评判、颜色、交互、认知
  • 可视化基础:可视化编码、可视分析、图形交互
  • 可视化解决方案:图表的正确使用、常见的业务的可视化场景

基于web的可视化技术

底层技术规范

  • SVG:可缩放矢量图形(Scalable Vector Graphics),是基于可扩展标记语言(标准通用标记语言的子集)用于描述二维矢量图形的一种图形格式。
  • Canvas 2D:Canvas 通过 JavaScript 来绘制 2D 图形,通过逐像素来进行渲染。
  • Canvas 3D WebGL:WebGL(Web Graphic Library)是一个 JavaScript API,用于在任何兼容的 Web 浏览器中渲染 3D 图形。WebGL 程序由用 JavaScript 编写的控制代码和用 OpenGL 着色语言(GLSL)编写的着色器代码构成,这种语言类似于 C 或 C++,可在 GPU 上执行。

视觉编码

将数据信息映射成可视化元素的技术。

可视化符号(Mark) :

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

当表示元素时Mark包括:点、线、面

当表示关系时Mark包括:闭包、连线

视觉通道(Channel) :

基于数据属性,控制可视化的符号展现样式,例如,点根据其所代表的数据属性的不同可有不同的形状与颜色。视觉通道有两种类型:

数量通道(Magnitude Channel):

用于显示数据的数值属性(定量/定序) 包括:位置、长度、角度、面积、深度、色温、饱和度、曲率、体积。

标识通道(Identity Channel):

用于显示数据的分类属性( 是什么/在哪里) 包括:空间区域、色向、动向、形状。

视觉编码的优先级

不同的视觉编码在表达信息的作用和能力上有不同的特性

  • 当利用数量通道编码表示数值属性时: 位置通道是最为精确的,其次是长度、角度、面积、深度、色温、饱和度、曲率、最后是体积
  • 当利用标识通道表示分类属性时: 划分空间区域最为有效,其后依次是色向、动向、形状

基础统计图表

柱状图(Bar)

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

饼图(Pin)

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

散点图(Scatter)

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

折线图

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

    • 也可以在轴为离散数据时使用:
    • 甚至可以用于分类数据时使用,如果分类数据的顺序是有意义的
    • 以上两种情况在插值计算时要格外注意 (离散数据不应该用曲线插值)

面向前端的可视化工具

D3

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

柱状图示例:link

Vega

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

柱状图示例:link

G2

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

柱状图示例:link

ECharts

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

柱状图示例:link

三、引用参考: