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

109 阅读5分钟

这是我参与「第四届青训营 」笔记创作活动的第11天

01.什么是数据可视化

数据可视化分类

科学可视化

image.png

  • 科学实验数据的直观展示

信息可视化

image.png

  • 对抽象数据的直观展示

可视分析

image.png

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

为什么要数据可视化

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

02.可视化设计原则和方法

可视化设计原则

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

常见的错误可视化

01.透视失真

  • 如果数字是由视觉元素表示的,那么它们应该与视觉元素的感知程度成正比。
  • 使用清晰、详细和彻底的标签,以避免图形失真和含糊不清。 image.png

02.图形设计&数据尺度

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

  • 这些预期往往决定了眼睛实际看到的东西;
  • 错误的数据洞袭,产生于在图形的某个地方发生的不正德的视觉预期推断。

一个典型的例子:轴刻度,我们期望它从始至终能够保持连贯且一致。 image.png

03.数据上下文

image.png

可视化设计原则

  1. 准确地展示数据
  2. 节省笔墨
  3. 节省空间
  4. 消除不必要的“无价值”图形
  5. 在最短时间内传达最多的信息

最大化数据墨水占比Data-ink Ratio

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

案例:

image.png

image.png

  • 绝大多数墨水都是数据墨水:用于绘制散点和对应标签
  • 10%-20%的墨水是非数据墨水:用于绘制坐标轴和刻度线
  • 并非所有的非数据墨水都没有用(例如坐标轴信息)

提高Data-ink Ratio

两个擦除原则:

  1. 擦除非数据墨水
  2. 擦除冗余的数据墨水

非数据墨水是指不能描绘有价值信息的墨水:

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

03.视觉感知

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

04.视觉编码

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

数据信息:属性+值

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

可视化符号(Mark)

用于在可视化当中表现数据元素或元素之间的关联。 当表示元素时Mark包括:点、线、面

image.png

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

image.png

视觉通道

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

视觉通道有两种类型

  • 数量通道(Magnitude Channel),用于显示数据的数值属性(定量/定序)。包括:位置、长度、角度、面积、深度、色温、饱和度、曲率、体积。
  • 标识通道(ldentity Channel),用于显示数据的分类属性(是什么/在哪里)包括:空间区域、色向、动向、形状。

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

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

05.面向前端的可视化工具介绍

D3

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

Vega

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

G2

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

ECharts

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