YL7196
精通D3.js 第2版+图说D3:数据可视化利器从入门到进阶+D3 API详解 3本
9787121315053 9787121304804 9787121278990
| 精通D3.js (第2版) |
| 作 译 者: | |||||||||
| |||||||||
| 所属分类: >> >> 网络与互联网 | |||||||||
| 纸质书定价:¥85.0 |
本书以世界范围内小流行的可视化工具D3为主题,包含D3简介、Web前端基本知识、D3开发环境的构建、D3基础、D3学习主线,以及D3小新版本D3.js 4.0的知识。学习本书后,相信读者能在查询API的情况下完成数据可视化的工作。为使阅读尽量简单、易懂,本书附带非常丰富的插图。 本书在设计上希望让零基础的读者也能阅读,但这或许很难。读者也许需要至少掌握一门编程语言,例如C/C++、Java、,并了解网页编写的基本知识。本书以世界范围内小流行的可视化工具D3为主题,包含D3简介、Web前端基本知识、D3开发环境的构建、D3基础、D3学习主线,以及D3小新版本D3.js 4.0的知识。学习本书后,相信读者能在查询API的情况下完成数据可视化的工作。为使阅读尽量简单、易懂,本书附带非常丰富的插图。 本书在设计上希望让零基础的读者也能阅读,但这或许很难。读者也许需要至少掌握一门编程语言,例如C/C++、Java、,并了解网页编写的基本知识。
目 录
第1章 D3简介 1
1.1 D3是什么 1
1.1.1 D3简史 2
1.1.2 D3的优势 3
1.1.3 D3的适用范围 4
1.2 数据可视化是什么 4
1.2.1 目的 5
1.2.2 构成要素 5
1.2.3 相关概念 7
1.3 图表种类 7
1.4 学习方法 10
1.4.1 预备知识 11
1.4.2 学习顺序 11
1.4.3 D3难吗 11
第2章 Web前端开发基础 13
2.1 浏览器和服务器 14
2.1.1 浏览器 14
2.1.2 服务器 15
2.2 HTML&CSS 16
2.2.1 HTML元素 17
2.2.2 CSS选择器 17
2.3 18
2.3.1 在HTML中使用 18
2.3.2 语法 19
2.3.3 变量 20
2.3.4 数据类型 21
2.3.5 操作符 23
2.3.6 语句 24
2.3.7 函数 27
2.3.8 对象 27
2.3.9 数组 28
2.4 DOM 29
2.4.1 结构 29
2.4.2 访问和修改HTML元素 30
2.4.3 添加和删除节点 31
2.4.4 事件 32
2.5 SVG 32
2.5.1 位图和矢量图 33
2.5.2 图形元素 33
2.5.3 文字 38
2.5.4 样式 39
2.5.5 标记 40
2.5.6 滤镜 41
2.5.7 渐变 42
2.6 Canvas 43
2.6.1 开始绘图 44
2.6.2 状态机 44
2.6.3 基本图形 45
2.6.4 文字 47
2.6.5 变形 48
2.6.6 图片 49
2.6.7 渐变 49
2.7 色彩基础 50
2.7.1 颜色空间 50
2.7.2 色相环 51
2.7.3 配色基础 52
2.7.4 配色的心理效果 54
第3章 准备开发环境 55
3.1 下载D3 55
3.1.1 通过本地引用 55
3.1.2 通过网络引用 56
3.2 安装Chrome和Sublime Text 56
3.3 安装Apache HTTP Server 57
3.4 Hello World 60
3.5 绘制矢量图 61
3.6 调试 62
第4章 D3基础:选择集与数据 63
4.1 选择元素 63
4.2 选择集 64
4.2.1 查看状态 64
4.2.2 设定和获取属性 65
4.3 添加、插入和删除 68
4.4 数据绑定 69
4.4.1 datum()的工作过程 69
4.4.2 data()的工作过程 72
4.4.3 绑定的顺序 76
4.5 update、enter、exit 77
4.5.1 enter的处理方法 77
4.5.2 exit的处理方法 79
4.5.3 数据更新时的处理模板 79
4.6 选择集的常用方法 80
4.6.1 过滤filter 80
4.6.2 排序sort 81
4.6.3 遍历each 81
4.6.4 传递call 82
4.7 数组的常用方法 82
4.7.1 排序 82
4.7.2 求值 83
4.7.3 生成和操作 85
4.7.4 映射 86
4.8 柱形图 88
4.8.1 添加矩形和文字 88
4.8.2 更新数据 92
第5章 比例尺和坐标轴 96
5.1 定量比例尺 96
5.1.1 线性比例尺 97
5.1.2 指数比例尺和对数比例尺 100
5.1.3 量子比例尺和分位比例尺 101
5.1.4 阈值比例尺 103
5.2 序数比例尺 104
5.3 坐标轴 108
5.3.1 绘制方法 109
5.3.2 刻度 111
5.3.3 各比例尺的坐标轴 113
5.4 散点图 113
第6章 绘制 116
6.1 颜色 116
6.1.1 RGB 117
6.1.2 HSL 118
6.1.3 插值 119
6.2 线段生成器 119
6.3 区域生成器 123
6.4 弧生成器 125
6.5 符号生成器 127
6.6 弦生成器 129
6.7 对角线生成器 131
6.8 折线图 132
第7章 动画 137
7.1 过渡效果 137
7.1.1 创建过渡 138
7.1.2 过渡的属性 141
7.1.3 子元素 144
7.1.4 事件监听和调用 146
7.1.5 过渡的样式 148
7.2 散点图的过渡效果 148
7.2.1 绘图准备 149
7.2.2 应用过渡的散点 150
7.2.3 绘制坐标轴 151
7.2.4 更新数据的事件 152
7.2.5 结果 153
第8章 交互 154
8.1 监听器 154
8.1.1 鼠标 156
8.1.2 键盘 157
8.1.3 触屏 159
......................
| 图说D3:数据可视化利器从入门到进阶 | |||||||||||||||||||
|
本书以一个故事开始,阐释制作可视化数据图表的基本方法论,以及如何结合D3高效、快速地创建可视化图表。本书首先解释了可视化的基本涵义,以及D3的适用人群,然后从一个具体的例子入手,告诉我们如何去挑选合适的数据集,以什么样的形式来展现数据,同时对SVG进行了基础铺垫。在D3部分,本书介绍了D3的核心概念“选择集”与“数据连接”,同时对数据连接的几个经典场景进行了演绎,还结合D3介绍了绘图所要掌握的坐标系统、比例尺等基本概念。在数据加载方面,本书讲解了D3可以解析的多种数据格式,以及从后端加载数据的多种方法,同时解释了D3动画的制作方式,为制作交互式图表奠定了基础。小后,本书揭示了掌握D3的不二法门,并希望读者能够不断实践、持之以恒。全书写作风格生动有趣、内容通俗易懂,既适合D3初学者入门,也有助于有一定经验的前端开发者快速掌握D3。
1 以图叙事和D3 1
1.1 可视化,已可视 1
1.2 图表赋予数据一种形式,该形式阐述了数据的内涵 2
1.3 质量:内容为王 4
1.4 设计:形式至上 5
1.5 以图叙事 6
1.6 开启D3 7
1.7 设计师为什么喜欢D3 8
1.8 程序员为什么钟爱D3 8
1.9 什么时候不该使用D3 9
1.10 D3的使用要点 9
1.11 所需工具 10
1.12 小结 11
2 发掘并图解案例 13
2.1 开始 13
2.2 世界正在变老吗 14
2.3 发现并研究数据 15
2.4 打磨概念 18
2.5 选择形式 19
2.5.1 用柱形图展示数据 19
2.5.2 用堆积柱形图展示数据 20
2.5.3 用线图展示数据 22
2.5.4 用饼图展示数据 23
2.5.5 用条形图展示数据 25
2.5.6 用多个微型条形图展示数据 26
2.5.7 选图建议——思维导图 28
2.6 本书将构建的例子 30
2.7 小结 31
3 可缩放矢量图形 33
3.1 原理一瞥 33
3.2 到底什么是SVG 33
3.3 用D3绘制圆形 34
3.4 在Web Inspector中查看SVG 36
3.5 通过CSS改变SVG元素的风格 37
3.6 其他图形 39
3.6.1 矩形 39
3.6.2 圆角矩形 40
3.6.3 圆形 40
3.6.4 椭圆 41
3.6.5 多边形 41
3.6.6 线 42
3.6.7 路径 42
3.7 SVG文本 43
3.8 SVG样式属性 46
3.8.1 颜色和透明 46
3.8.2 笔触属性 47
3.9 绘图顺序和编组 49
3.10 变形 51
3.11 用SVG构建条形图 53
3.12 小结 66
4 用D3选择集操控网页 67
4.1 配置D3 67
4.2 选择元素 68
4.2.1 使用CSS选择器创建选择集 71
4.2.2 从其他选择集中新建选择集 72
4.2.3 将选择集赋值为变量 72
4.3 通过选择集修改属性 72
4.3.1 attr()的工作原理 74
4.3.2 使用attr()应用样式类和规则 76
4.4 声明式的D3 77
4.5 链式方法调用 77
4.5.1 在链式调用过程中新建选择集 79
4.5.2 链式调用和变量赋值 80
4.6 添加元素 80
4.7 串在一起 82
4.8 用d3.selectAll()选中多个元素 84
4.9 使用选择集制作条形图 85
4.9.1 使用变量 96
4.9.2 数学运算 98
4.9.3 使用更好的变量 98
4.9.4 为数据使用变量 99
4.9.5 进行显式约束 100
4.9.6 使用循环 101
4.10 小结 107
5 数据连接:进入 109
5.1 什么是数据连接 109
5.2 数据连接的核心概念:进入 110
5.3 进入并绑定数据 112
5.4 使用数据连接制作条形图 115
5.5 使用匿名函数访问绑定数据 120
5.6 完成图形的剩余部分 123
5.7 在对象中存储数据 123
5.8 小结 129
6 缩放图形并添加轴线 131
6.1 线性比例尺 131
6.2 灵巧地使用边距规范 137
6.3 添加坐标轴 139
6.4 序数比例尺和坐标轴 147
6.5 小结 160
7 加载并过滤外部数据 161
7.1 使用人口分布数据构建图形 161
7.2 D3兼容的数据格式 162
7.3 创建服务器并上传数据 163
7.3.1 通过命令行初始化服务器 163
7.3.2 创建索引文件 164
7.4 D3加载数据的方法 165
7.4.1 回调方法 165
7.4.2 D3如何解析CSV表格 166
7.5 处理异步请求 169
7.5.1 用外部数据创建条形图 170
7.5.2 优化条形图 172
7.6 加载和处理大(超大)数据集 175
7.7 合并内容 178
7.8 小结 180
8 为图形添加交互和动画效果 181
8.1 数据连接:更新和退出 181
8.2 交互按钮 185
8.2.1 用数据连接创建按钮 186
8.2.2 让按钮更方便点击 192
8.3 更新图形 195
8.4 添加转场动画效果 199
8.5 使用键 200
8.6 小结 202
9 添加播放按钮 203
9.1 在方法中封装更新阶段 203
9.2 在页面上添加播放按钮 207
9.3 点击播放 209
9.4 允许用户中断播放 212
9.5 小结 217
10 修行靠自身 219
10.1 本书是学习D3的基础 219
10.2 如何克服障碍 220
10.3 持续编码 222
10.4 小结 222
附录A 入门 223
A.1 简介 223
A.2 浏览器中的控制台 223
A.3 基本运算、变量及数据类型 224
A.4 在页面和.js文件中编写代码 227
A.5 数组和对象 229
A.6 方法和函数 232
A.7 if语句和for循环 233
A.8 调试 237
附录B 整理人口分布数据 241
第1 章 核心(Core) .......................... 1
1.1 选择 ......................................................... 1
1.1.1 d3.select(selector) .......................................... 1
1.1.2 d3.select(node) ............................................... 2
1.1.3 d3.selectAll(selector) ..................................... 3
1.1.4 d3.selectAll(nodes) ........................................ 4
1.1.5 selection.attr(name[, value]) .......................... 4
1.1.6 selection.classed(name[, value]) .................... 5
1.1.7 selection.style(name[, value[, priority]]) ........ 6
1.1.8 selection.property(name[, value]) .................. 6
1.1.9 selection.text([value]) .................................... 7
1.1.10 selection.html([value]) ................................. 8
1.1.11 selection.append(name) ................................ 9
1.1.12 selection.insert(name[, before]) ................... 9
1.1.13 selection.remove() ...................................... 10
1.1.14 selection.data([values[, key]]) .................... 10
1.1.15 selection.enter().......................................... 12
1.1.16 selection.exit() ........................................... 14
1.1.17 selection.filter(selector) ............................. 15
1.1.18 selection.datum([value]) ............................ 15
1.1.19 selection.sort(comparator) .......................... 16
1.1.20 selection.on(type[, listener[, capture]]) ...... 17
1.1.21 d3.event ..................................................... 18
1.1.22 d3.mouse(container) .................................. 19
1.1.23 selection.transition() .................................. 19
1.1.24 selection.select(selector) ............................ 19
1.1.25 selection.selectAll(selector) ....................... 20
1.1.26 selection.each(function) ............................. 21
1.1.27 selection.call(function[, arguments…]) ..... 22
1.1.28 selection.empty() ....................................... 23
1.1.29 selection.node() ......................................... 23
1.1.30 selection.size() ........................................... 23
1.2 过渡 ....................................................... 23
1.2.1 transition.delay([delay]) .............................. 23
1.2.2 transition.duration([duration]) ..................... 24
1.2.3 transition.ease([value[, arguments]]) ........... 25
1.2.4 transition.attr(name, value) .......................... 25
1.2.5 transition.attrTween(name, tween) .............. 26
1.2.6 transition.style(name, value[, priority]) ....... 26
1.2.7 transition.styleTween(name,
tween[, priority]) ......................................... 27
1.2.8 transition.text(value) .................................... 27
1.2.9 transition.tween(name, factory) ................... 28
1.2.10 transition.remove() .................................... 28
1.2.11 transition.select(selector) ........................... 29
1.2.12 transition.selectAll(selector) ...................... 29
1.2.13 transition.filter(selector) ............................. 30
1.2.14 transition.transition() .................................. 30
1.2.15 transition.each([type, ]listener) .................. 30
1.2.16 transition.call(function[, arguments…]) ..... 31
1.2.17 transition.empty() ....................................... 32
1.2.18 transition.node() ......................................... 32
1.2.19 transition.size() .......................................... 32
1.2.20 d3.ease(type[, arguments…]) ..................... 32
1.2.21 ease(t) ........................................................ 33
1.2.22 d3.timer(function[, delay[, time]]) ............. 33
1.2.23 d3.interpolate(a, b) ..................................... 34
1.2.24 interpolate(t) .............................................. 34
1.2.25 d3.interpolateNumber(a, b) ........................ 35
1.2.26 d3.interpolateRound(a, b) .......................... 35
1.2.27 d3.interpolateString(a, b) ........................... 35
1.2.28 d3.interpolateRgb(a, b) .............................. 36
1.2.29 d3.interpolateHsl(a, b) ............................... 36
1.2.30 d3.interpolat
“D3 API详解”这本书,我将它视为是整个学习体系中的“字典”和“工具箱”。当我阅读“精通”和“图说”时,肯定会遇到一些API的具体用法和细节,这个时候,这本API详解就显得尤为重要。我期待它能够详细地列出D3.js所有主要的API,并且对每一个API的功能、参数、返回值以及使用场景都进行清晰的说明。 比如说,关于选择集(Selections)的常用方法,如 `.select()`, `.selectAll()`, `.data()`, `.enter()`, `.append()`, `.attr()`, `.style()` 等等,我希望能够在这里找到它们最权威、最完整的解释。同样,对于数据处理、比例尺(Scales)、坐标轴(Axes)、过渡动画(Transitions)等核心模块的API,我也希望能够得到详尽的介绍。这本书不求教会我“怎么做”,而是告诉我“能做什么”,以及“怎么调用”来做到。它将是我在实际开发中解决具体问题的强大后盾。
评分收到这套书的时候,我抱着学习D3.js的热切期待,这套书的组合本身就让我觉得非常超值,包含了“包邮 精通D3.js 第2版”、“图说D3:数据可视化利器从入门到进阶”以及“D3 API详解”。作为一名对数据可视化领域充满兴趣的开发者,我深知D3.js强大的能力,但同时我也知道它学习曲线相对陡峭。因此,当我看到这套书的组合时,第一时间就被它“从入门到进阶”的全方位覆盖所吸引。 “精通D3.js 第2版”这本书,从它的书名就能看出其深度。我期待它能提供一个系统性的、扎实的D3.js学习路径。第一版我没有接触过,但第二版的出现,意味着它一定经过了市场的检验和内容的更新,这让我对它的权威性和实用性有了更高的信心。我希望它能够从最基础的概念讲起,循序渐进地引导我掌握D3.js的核心原理和常用技巧。比如,关于SVG的基础知识,DOM操作与数据绑定的关系,以及如何利用D3.js来创建各种基本的图表类型,如柱状图、折线图、散点图等。我相信,这本书的“精通”二字绝非虚言,它应该能帮助我建立起牢固的D3.js知识体系,为后续更复杂的学习打下坚实的基础。
评分“图说D3:数据可视化利器从入门到进阶”这本书,名字中的“图说”两个字就让我眼前一亮。对于我这样需要大量视觉化信息来辅助理解的学习者来说,一本以图为主的书籍简直是福音。我期待这本书能够用大量生动的图表来解释D3.js的各种概念和实现方式。不仅仅是代码的堆砌,而是通过直观的图形展示,让我能够“看懂”D3.js是如何工作的。 例如,在讲解数据绑定时,如果能用图示清晰地展示数据数组如何与DOM元素一一对应,再到数据更新时元素的添加、删除和变化过程,那将极大地降低理解难度。同样,在介绍各种可视化组件时,比如力导向图、桑基图、地理信息图等,如果能通过图解的方式展示其背后的数学原理和D3.js的实现逻辑,我将能更快地掌握这些高级的应用。我希望这本书能够帮助我跨越从理论到实践的鸿沟,真正地“玩转”D3.js,成为一名数据可视化的高手。
评分我对于这套书的预期是,它能够带领我走进一个全新的数据可视化世界。我之前也尝试过一些其他的数据可视化库,但总觉得不够灵活,不够强大。D3.js以其低级别的API和对Web标准(SVG, HTML, CSS)的深度整合,让我看到了无限的可能性。 我希望通过这套书的学习,能够掌握D3.js在处理大规模数据集时的优化技巧,理解其性能调优的关键点。另外,对于一些非常规的、定制化的可视化需求,D3.js的强大灵活性应该是能够满足的。我期待书中能够包含一些进阶的案例,例如交互式地图的制作,或者复杂的网络图的绘制,这些都是我一直以来非常感兴趣并且想要掌握的技能。相信这套书能够让我真正领略到D3.js作为“数据可视化利器”的威力。
评分总而言之,这套书的组合策略非常明智。它将理论深度、可视化理解和API工具性完美地结合起来。我尤其看重“图说D3”的直观性,因为很多时候,抽象的代码实现对于初学者来说是难以理解的。通过丰富的图例,我相信能够更轻松地掌握D3.js的核心概念,并且将这些概念与实际的代码实践联系起来。 我期待在学习过程中,能够通过“精通D3.js”来构建完整的知识框架,理解D3.js的设计哲学和工作流程。在遇到不理解的API时,随时翻阅“D3 API详解”,找到最准确的使用方法。这三本书相互补充,形成了一个非常完整和高效的学习闭环,能够帮助我从一个D3.js的门外汉,逐步成长为能够独立完成复杂数据可视化项目的开发者。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有