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

264 阅读4分钟

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

04视觉编码

视觉编码是一种:将数据信息(属性+值)映射成可视化元素(可视化符号+视觉通道)的技术

可视化符号(Mark)

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

  • 当表示元素时Mark包括:点,线,面
  • 当表示关系时Mark包括:闭包,连线

视觉通道(Channel)

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

  • 视觉通道有两种类型

    • 数量通道(Magnitude Channel)

      用于显示数据的数值属性(定量/定序)

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

    • 标识通道(Identity Channel)

      用于显示数据的分类属性(是什么/在哪里)

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

视觉编码的优先级

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

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

05基础统计图表

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

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

基础图表--饼图(Pie)

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

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

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

折线图

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

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

选择合适的图表

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

D3

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

示例

Bar Chart Remix / D3 | Observable (observablehq.com)

Vega

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

G2

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

ECharts

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