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

172 阅读5分钟

这是我参与【第四届青训营】笔记创作活动的第 15 天,今天学习了 数据可视化 的一些知识点

1. 数据可视化的概念和基本原则

1.1 什么是数据可视化

概念

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

1.2 数据可视化的分类

1.2.1 科学可视化

科学实验数据的直观展示

image.png

1.2.2 信息可视化

对抽象数据的直观展示

image.png

1.2.3 可视分析

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

image.png

1.3 为什么要可视化

  • 记录信息
  • 分析推理
  • 证实假设
  • 交流思想

2. 可视化设计的原则以及基础概念

2.1 可视化设计原则和方法

一些糟糕的可视化呈现

image.png

显而易见:数据多而杂乱

错误的可视化呈现

image.png

原则

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

其中最重要的是展现数据 在合理范围内,最大化数据墨水占比

  • 消除非数据墨水
  • 擦除冗余的数据墨水

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

一个出色的可视化设计可在最短的时间内,使用最少的空间,用最少的笔墨为观众提供最多的信息内涵 ——Edward R.Tufte

常见的错误可视化

1. 透视失真

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

2. 图形设计 & 数据尺度

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

  • 这些预期往往决定了眼睛实际看到的东西
  • 错误的数据洞察,产生于在图形的某个地方发生的不正确的视觉预期推断 一个典型的例子:轴刻度,我们期望它从始至终能够保持连贯且一致。 image.png

3. 数据上下文

image.png

2.2 视觉感知

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

2.3 基础图标

2.3.1 柱状图(Bar)

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

image.png

2.3.2 饼图(Pie)

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

2.3.3 散点图(Scatter)

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

image.png

image.png

2.3.4 折线图

  • 大多数情况下,折线图适用于 x 轴为连续数据的场景,但
    • 也可以在 x 轴为离散数据时使用
    • 甚至可以用于分类数据时使用,如果分类数据的顺序是有意义的
    • 以上两种情况在插值计算时需要格外注意

image.png

3. 一些面向前端的数据可视化工具

3.1 D3

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

简单柱状图示例: observablehq.com/@d3/bar-cha…

3.2 Vega

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

代码结构

image.png

image.png

3.3 G2

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

代码结构

image.png

image.png

3.4 ECharts

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

代码结构

image.png

image.png

总结

本文针对于数据可视化的基础概念做了简单的介绍,数据可视化在我们日常中还是比较常见的,因此做前端这款对这部分的内容还是需要好好了解一下~