可视化入门:从 0 到 1 开发一个图表库- 掘金小册课程推荐/优惠

可视化入门:从 0 到 1 开发一个图表库--掘金小册课程推荐/优惠

理论结合实践,从 0 开发一个图表库,带你入门数据可视化
数据可视化
20讲 | 2203人已学习
优惠价¥19.9
官网购买

版权声明

本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

课程介绍

作者介绍

  • 万木:蚂蚁体验技术部前端工程师,AntV G2 栈的核心维护者,多次在 IEEE Vast Challenge,ChinaVis Challenge 等数据分析挑战赛中获得优异成绩。喜欢写代码给自己带来的创造的快乐,开源爱好者,在 GitHub 有一些简单有意思的项目。

  • 逍为:蚂蚁体验技术部 / 数智团队前端开发,前网易游戏测试开发。目前主要负责内部 BI 产品 DeepInsight 的迭代,以及 AntV 开源统计图表 G2 技术栈的研发。 GitHub 上开源了诸多有趣可用的开源项目。

  • 新茗:蚂蚁体验技术部前端工程师,AntV 核心开发者,负责开源统计图表 G2、G2Plot 的研发,以及蚂蚁集团 BI 产品 DeepInsight 的迭代,从图表库到 BI 产品的一体化建设,对商业智能领域的数据可视化建设有较丰富经验。

  • 福晋:蚂蚁体验技术部前端工程师,AntV 核心开发者,从事可视分析相关业务以及可视化基建,负责过多个大型项目的前端交付,擅长小程序、可视化、H5、RN 等领域。

  • 云极:蚂蚁体验技术部/数智团队,主要从事于 BI 产品地理数据可视分析前端研发。曾混迹于 GIS 数字孪生应用创业公司,主要负责 WebGIS 研发工程师的前端架构研发。技术兴趣爱好广泛并热心技术分享,目前沉迷于可视化与 Golang 方向。

  • 缨缨:蚂蚁体验技术部前端工程师,负责蚂蚁集团 BI 产品 DeepInsight 表相关业务迭代。AntV 核心开发者,AntV S2 技术栈负责人。

小册介绍

在这个以数据为核心竞争力的时代,数据可视化已经和机器学习、统计学等热门领域一样,成为了其中最核心的分析工具之一。在 2020 年初新冠病毒爆发之时,各种疫情可视化工具如及时雨一般出现,在展现疫情情况、分析传播趋势等领域立下了汗马功劳,也间接拯救了千千万万脆弱的生命。

但是这个年轻却又古老的领域却依然小众,市面上也很少能见到同时将理论和实践兼顾得很好的课程。高校里面的数据可视化课程将理论讲得异常精彩,却又少了足够的实践让学生能够学以致用。

  • D3EChartsG2VegaVega-lite 都可以做可视化,到底选择哪个?
  • D3 学习曲线那么高,怎么入门?
  • ECharts 和 G2 一个是配置式的 API,一个是函数式 API,到底有哪些区别?

网络上的教程尤其青睐将实践部分的数据渲染、性能优化等问题讲得透透彻彻,却又忽略了数据转换在数据可视化流程举足轻重的地位。就比如我们在开发迭代 G2 的过程中,也发现用户们有许多的问题。

  • Quantile,Threshold,Quantize 比例尺有啥区别?
  • 希望生成的坐标刻度是 6 个,但是为什么却生成了 8 个?
  • nice 操作到底有什么用?

这些都是因为大家对数据可视化中的图形语法不了解,那为了图形语法能够普罗大众,我们简化了 API,增加了 G2Plot 项目。不仅如此,我们也希望能有机会来提升社区同学对可视化的理解广度,这是这本小册的初衷。

在这本小册中,我们为了解决大家学习数据可视化的痛点问题,将围绕着“可视化苏菲的世界”这个具体的数据分析任务展开。

首先你会学到 Tamara Munzner 的 《Visualization Analysis & Design》这本书中如下的一个数据分析的模型,并且用它去完成完成“苏菲的世界”中可视化的设计。这里需要注意的因为小册子的篇幅有限,下面的内容不会深入讲解,只会讨论大部分相对重要一点的,剩余的简单提及。

然后,我们会了解前端工程的以下方面,并且搭建我们的开发环境。同样因为篇幅有限,下面提到的工具不会深入细讲,但是会讲解各自的主要作用和基本使用方法,了解最核心的东西,并且给出深入学习的资源。

接着,我们会基于搭建好的开发环境,按照测试驱动的方式,从 0 到 1(不借助任何第三方框架)开发完成基于以下架构图的图形语法图表库:Sparrow [Github官网]。

Sparrow 支持通过 JavaScript Object 去描述一个图表。比如如下去绘制一个条形图。

import { plot } from "@sparrow-vis/sparrow";

const data = [
  { genre: "Sports", sold: 275 },
  { genre: "Strategy", sold: 115 },
  { genre: "Action", sold: 120 },
  { genre: "Shooter", sold: 350 },
  { genre: "Other", sold: 150 },
];

// 通过 JavaScript Object 描述图表
const chart = plot({
  data,
  type: "interval",
  encodings: {
    x: "genre",
    y: "sold",
    fill: "genre"
  }
});

document.getElementById("container").appendChild(chart);

最后结果如下:

同时使用 Sparrow 也有能力绘制出手绘风格的图表:

import { plot } from "@sparrow-vis/sparrow";
import { createPlugin } from "@sparrow-vis/rough-renderer"

const data = [
  { genre: "Sports", sold: 275 },
  { genre: "Strategy", sold: 115 },
  { genre: "Action", sold: 120 },
  { genre: "Shooter", sold: 350 },
  { genre: "Other", sold: 150 },
];

const chart = plot({
  data,
  renderer: createPlugin(), // 使用手绘风格的渲染器插件
  type: "interval",
  encodings: {
    x: "genre",
    y: "sold",
    fill: "genre"
  }
});

document.getElementById("container").appendChild(chart);

Sparrow 可以支持常用的基本图表的绘制:条形图、堆叠条形图、分组条形图、饼图、折线图、面积图、热力图等,也可以和第三方插件配合绘制:词云、地图、力导向图等比较复杂的可视化。

这之后,我们会学习统计图表可视化、图可视化、地理可视化的基本方法,并且用我们的 Sparrow 和下图中的 AntV 技术栈的相关工具去完成“可视化苏菲的世界”这个任务。下面的工具我们都会简单介绍,对于 AntV 技术栈的一些工具我们会在可视化工程中介绍基本用法:G2 & G2Plot,L7 & L7Plot,G6。

最后,我们将得到如下的一些可视化结果(只展示了部分)。

学习理论最好的方法就是用理论去动手解决一个实际的问题,了解一个“轮子”的最好方式就是去写一个“轮子”!

你会学到什么

  • 了解数据可视化的流程;
  • 知道怎么基于浏览器的 Canvas 和 SVG 绘图技术绘制条形图;
  • 掌握图形语法,利用它去简化绘图流程;
  • 从 0 到 1 开发一个基于图形语法的图表库:Sparrow
  • 知道如何让一个图表库从 0 到 1,也知道怎么让它 1 再到 2。

适宜人群

  • 在玲琅满目的可视化工具中不知道选择哪个来解决你的问题;
  • 对可视化和数据分析感兴趣,在日常学习或者工作中常常和它们接触,想深入了解;
  • 对前端或者前端工程化感兴趣,想开发一个完整的前端库来练练手,熟悉其中的主要流程;
  • 想参与 G2 等开源社区的建设,却不知道从哪开始看代码;
  • 想参加 Vast Challenge ,ChinaVis Challenge 等数据分析的挑战赛,但是无从下手;
  • 想加入我们,但是怕通不过面试。

课程目录

  • 开篇:可视化介绍
  • 基础:数据分析模型
  • 实战:坐标系 - Coordinate
  • 基础:绘制一个条形图
  • 实战:搭建开发环境
  • 实战:几何图形 - Geometry
  • 实战:辅助组件 - Guide
  • 分析:哲学流派的“组织架构”是啥样的?
  • 实战:统计 - Statistic
  • 分析:西方哲学中心的“迁徙之旅”
  • 分析:哲学家之间在讨论啥“八卦”?
  • 分析:抽象的哲学问题又有谁来解?
  • 总结:回顾过去,展望未来
  • 基础:可视化工具概览
  • 实战:比例尺 - Scale
  • 实战:渲染引擎 - Renderer
  • 分析:压抑的中世纪发生了什么?
  • 实战:渲染流程 - Plot
  • 实战:视图 - View
  • 分析:表格带你浅尝数据分析

作者介绍

前端开发工程师
数据可视化工程师,热爱开源,喜欢分享!

推荐

Netty 网络编程之道 - 掘金小册课程推荐/分享/优惠/折扣
Netty 网络编程之道
Netty+互联网协议+Java NIO,搞定 Java 网络通信
肖恩架构
683人已学习
优惠价¥39.9
官网购买
从 0 开始深入学习 Spring - 掘金小册课程推荐/分享/优惠/折扣
从 0 开始深入学习 Spring
从0开始手把手教你学习 Spring ,循序渐进由浅入深掌握 Spring 的核心与底层,助你成为 Spring 大佬。
LinkedBear
5209人已学习
优惠价¥49.9
官网购买
Flutter 路由导航: 源码探索与实战 - 掘金小册课程推荐/分享/优惠/折扣
Flutter 路由导航: 源码探索与实战
路由导航是应用程序必须的一环,从源码到实践完全解读。
张风捷特烈
561人已学习
优惠价¥9.9
官网购买
区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp - 掘金小册课程推荐/分享/优惠/折扣
区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp
写给前端开发者的第一本区块链开发入门指南,通过 DApp 开发实战(基于以太坊创始人 V 神的 DAICO 设计思想),深入掌握区块链及以太坊技术
王仕军
2050人已学习
优惠价¥69
官网购买
JavaScript 设计模式核心原理与应用实践 - 掘金小册课程推荐/分享/优惠/折扣
JavaScript 设计模式核心原理与应用实践
通俗易懂的编程“套路“学。带你深入看似高深实则接地气的设计模式原理,在实际场景中内化设计模式的”道“与”术“。学会驾驭代码,而非被其奴役。
修言
13163人已学习
优惠价¥19.9
官网购买
从零开发H5可视化搭建项目 - 掘金小册课程推荐/分享/优惠/折扣
从零开发H5可视化搭建项目
配套视频教学!由浅入深从根上理解可视化搭建这回事,紧贴业务设计符合业务需要的搭建体系。
muwoo
2804人已学习
优惠价¥19.9
官网购买