编辑推荐
D3js提供了一个强大易用的平台,可以帮助我们创建优美的可视化图形,并通过HTML、SVG和CSS赋予数据鲜活的生命。该平台是建立在Web标准基础之上的,因此可以充分利用Web浏览器提供的各种功能。阅读和学习《D3 4.x数据可视化实战手册 第2版》,读者可以利用JavaScript的*新特性,通过D34.x实现*前沿的数据可视化。
《D3 4.x数据可视化实战手册 第2版》首先介绍了基本的D3结构和构建块,讲解了如何编写符合D3风格的JavaScript代码。接着阐释了如何使用选集来定位页面上的视觉元素,而后详述了通过编程方式和视觉方式表示数据的各种技术。同时,《D3 4.x数据可视化实战手册 第2版》还将教会读者在可视化过程中使用尺度将数据域中的值映射至可视域,并使用D3支持的各种形状函数来创建SVG形状。
此外,读者还可以在可视化过程中利用各种“力”——这是该领域中*激动人心的技术之一,并通过D3实现功能完善的等值区域图。*后,读者将学习如何在数据可视化项目中利用单元测试和测试驱动开发来生成高品质的D3代码。
《D3 4.x数据可视化实战手册 第2版》的主要内容:
深入了解D3基础知识和惯用语法;
使用D3加载、处理数据并将其映射为网页支持的各种图形;
创建数据驱动的动态图形,使其随着数据的变化而动态更新;
利用D3提供的各种布局来创建精致、动态和交互式的图表和图形;
在可视化项目中创建数据驱动的过渡和动画;
理解和利用更多高级概念,如力、触摸和地理数据可视化。内容简介
当今,我们的世界已经进入万物互联的时代,每天都会产生海量的数据,如果直接面对这些数据,可能让人无从下手。相反,如果将数据可视化,用形象生动的形式展现出来,不仅有利于分析其中的关联,还能攫取可能存在的商业机会。《D3 4.x数据可视化实战手册 第2版》旨在通过大量的示例和代码,向读者讲述如何利用D34.x来实现数据可视化。只要读者了解JavaScript,就能完全掌握《D3 4.x数据可视化实战手册 第2版》的内容。
《D3 4.x数据可视化实战手册 第2版》共13章,从如何搭建D3.js的开发环境开始,逐步介绍D3中的各种操作,其中包括选集、数据的初步处理、数据映射、坐标轴组件、动画过渡效果、SVG相关介绍、绘制图表、安排布局、可视化交互、力学模拟、制作地图和测试驱动。为了帮助读者理解这些丰富的概念,《D3 4.x数据可视化实战手册 第2版》提供了大量的示例和代码。最后,在附录部分,为读者介绍了另外两个JavaScript库,主要是关于三维制图和多维图表的。
如果读者是一名熟悉HTML、CSS、JavaScript的开发人员或架构师,并且希望了解D3的大部分知识,那么《D3 4.x数据可视化实战手册 第2版》将非常合适。《D3 4.x数据可视化实战手册 第2版》还可作为资深的D3数据可视化程序开发人员的快速参考指南。作者简介
朱启(NickZhu)是一位专业的程序员和数据工程师,在软件开发、大数据和机器学习领域拥有十几年的实战经验。目前,他担任在线购物元搜索引擎Yroo的首席技术官,同时也是该网站的创始人之一。此外,他还是基于D3开发的、可用于制作多维图表的流行开发库dc.js的创始人。目录
第1章 D3.js入门指南1
1.1简介 1
1.2搭建简易的D3开发环境 2
1.2.1准备工作 2
1.2.2搭建环境 2
1.2.3工作原理 3
1.2.4更多内容 4
1.3搭建基于NPM的D3开发环境 5
1.3.1准备工作 5
1.3.2搭建环境 5
1.3.3工作原理 6
1.3.4更多内容 7
1.4 理解D3风格的函数式JavaScript编程 9
1.4.1准备工作 9
1.4.2开始编程 9
1.4.3工作原理 11
1.4.4更多内容 15
第 2章精挑细选 17
2.1简介 17
2.1.1选集入门 17
2.1.2CSS3选择器入门 18
2.2选取单个元素 19
2.2.1准备工作 20
2.2.2开始编程 20
2.2.3工作原理 20
2.3选取多个元素 22
2.3.1准备工作 22
2.3.2开始编程 22
2.3.3工作原理 23
2.4迭代选集中的元素 23
2.4.1准备工作 24
2.4.2开始编程 24
2.4.3工作原理 24
2.5使用子选择器 26
2.5.1准备工作 26
2.5.2开始编程 26
2.5.3工作原理 27
2.6函数级联调用 28
2.6.1准备工作 29
2.6.2开始编程 29
2.6.3工作原理 30
2.7处理原始选集 30
2.7.1准备工作 31
2.7.2开始编程 31
2.7.3工作原理 32
第3章 与数据同行 34
3.1简介 34
3.2将数组绑定为数据 38
3.2.1准备工作 38
3.2.2开始编程 39
3.2.3工作原理 40
3.3将对象字面量绑定为数据 43
3.3.1准备工作 43
3.3.2开始编程 43
3.3.3工作原理 45
3.4将函数绑定为数据 46
3.4.1准备工作 47
3.4.2开始编程 47
3.4.3工作原理 48
3.5数组的处理 50
3.5.1准备工作 50
3.5.2开始编程 50
3.5.3工作原理 52
3.6数据的过滤 53
3.6.1准备工作 53
3.6.2开始编程 54
3.6.3工作原理 56
3.7基于数据的图形排序 56
3.7.1准备工作 57
3.7.2开始编程 57
3.7.3工作原理 59
3.8从服务器加载数据 59
3.8.1准备工作 60
3.8.2开始编程 60
3.8.3工作原理 61
3.9利用队列异步加载数据 62
3.9.1准备工作 63
3.9.2开始编程 63
3.9.3工作原理 64
第4章 张弛有“度” 66
4.1简介 66
4.2使用连续尺度 68
4.2.1准备工作 68
4.2.2开始编程 68
4.2.3工作原理 70
4.3使用时间尺度 73
4.3.1准备工作 73
4.3.2开始编程 73
4.3.3工作原理 74
4.3.4更多内容 75
4.3.5参考阅读 76
4.4使用有序尺度 76
4.4.1准备工作 77
4.4.2开始编程 77
4.4.3工作原理 79
4.5字符串插值 80
4.5.1插值器 80
4.5.2准备工作 81
4.5.3开始编程 81
4.5.4工作原理 82
4.5.5更多内容 84
4.6颜色插值 84
4.6.1准备工作 84
4.6.2开始编程 84
4.6.3工作原理 86
4.6.4参考阅读 87
4.7复合对象插值 87
4.7.1准备工作 87
4.7.2开始编程 87
4.7.3工作原理 89
第5章 玩转坐标轴 91
5.1简介 91
5.2坐标轴基础 91
5.2.1准备工作 92
5.2.2开始编程 92
5.2.3工作原理 94
5.3自定义刻度 97
5.3.1准备工作 98
5.3.2开始编程 98
5.3.3工作原理 99
5.4绘制表格线 99
5.4.1准备工作 100
5.4.2开始编程 100
5.4.3工作原理 102
5.5动态调节坐标轴尺度 104
5.5.1准备工作 104
5.5.2开始编程 105
5.5.3工作原理 107
第6章 优雅变换 108
6.1简介 108
6.2单元素动画 109
6.2.1准备工作 109
6.2.2开始编程 110
6.2.3工作原理 110
6.3多元素动画 111
6.3.1准备工作 112
6.3.2开始编程 112
6.3.3工作原理 114
6.4使用缓动函数 117
6.4.1准备工作 117
6.4.2开始编程 117
6.4.3工作原理 119
6.5使用中间帧计算 121
6.5.1准备工作 121
6.5.2开始编程 121
6.5.3工作原理 122
6.5.4更多内容 124
6.6使用级联过渡 125
6.6.1准备工作 125
6.6.2开始编程 125
6.6.3工作原理 126
6.7使用选择性过渡 127
6.7.1准备工作 127
6.7.2开始编程 127
6.7.3工作原理 128
6.7.4参考阅读 129
6.8监听过渡事件 129
6.8.1准备工作 129
6.8.2开始编程 129
6.8.3工作原理 130
6.9使用定时器 131
6.9.1准备工作 131
6.9.2开始编程 131
6.9.3工作原理 133
6.9.4参考阅读 133
第7章 形状之美 134
7.1简介 134
7.2创建简单形状 136
7.2.1准备工作 136
7.2.2开始编程 136
7.2.3工作原理 137
7.2.4更多内容 138
7.3使用线条生成器 139
7.3.1准备工作 139
7.3.2开始编程 139
7.3.3工作原理 141
7.3.4参考阅读 143
7.4使用曲线 143
7.4.1准备工作 143
7.4.2开始编程 143
7.4.3工作原理 146
7.4.4参考阅读 147
7.5更改线条的张力 147
7.5.1准备工作 147
7.5.2开始编程 147
7.5.3工作原理 150
7.6使用区域生成器 150
7.6.1准备工作 150
7.6.2开始编程 150
7.6.3工作原理 152
7.7使用断面曲线 154
7.7.1准备工作 154
7.7.2开始编程 154
7.7.3工作原理 156
7.7.4更多内容 157
7.7.5参考阅读 157
7.8使用圆弧生成器 157
7.8.1准备工作 157
7.8.2开始编程 157
7.8.3工作原理 159
7.8.4参考阅读 160
7.9实现圆弧过渡 161
7.9.1准备工作 161
7.9.2开始编程 161
7.9.3工作原理 163
7.9.4更多内容 165
7.9.5参考阅读 165
第8章 图表美化 166
8.1简介 166
8.2创建线图 168
8.2.1准备工作 168
8.2.2开始编程 169
8.2.3工作原理 170
8.3创建面积图 175
8.3.1准备工作 175
8.3.2开始编程 176
8.3.3工作原理 178
8.4创建散点图 179
8.4.1准备工作 179
8.4.2开始编程 179
8.4.3工作原理 181
8.5创建气泡图 183
8.5.1准备工作 183
8.5.2开始编程 183
8.5.3工作原理 185
8.6创建条形图 186
8.6.1准备工作 187
8.6.2开始编程 187
8.6.3工作原理 189
第9章 井然有序 191
9.1简介 191
9.2创建饼图 192
9.2.1准备工作 192
9.2.2开始编程 192
9.2.3工作原理 195
9.2.4更多内容 197
9.2.5参考阅读 197
9.3创建堆叠式面积图 198
9.3.1准备工作 198
9.3.2开始编程 198
9.3.3工作原理 200
9.3.4更多内容 202
9.3.5参考阅读 204
9.4创建矩形式树状结构图 204
9.4.1准备工作 205
9.4.2开始编程 206
9.4.3工作原理 207
9.4.4参考阅读 211
9.5创建树 211
9.5.1准备工作 212
9.5.2开始编程 212
9.5.3工作原理 214
9.5.4参考阅读 220
9.6创建封闭图 220
9.6.1准备工作 221
9.6.2开始编程 221
9.6.3工作原理 223
9.6.4参考阅读 225
第 10章可视化交互 226
10.1简介 226
10.2鼠标交互 227
10.2.1准备工作 227
10.2.2开始编程 227
10.2.3工作原理 229
10.2.4更多内容 230
10.2.5参考阅读 230
10.3多点触摸设备交互 230
10.3.1准备工作 231
10.3.2开始编程 231
10.3.3工作原理 233
10.3.4更多内容 235
10.3.5参考阅读 236
10.4缩放和平移行为的实现 236
10.4.1准备工作 236
10.4.2开始编程 236
10.4.3工作原理 239
10.4.4更多内容 240
10.4.5参考阅读 240
10.5拖曳行为的实现 241
10.5.1准备工作 241
10.5.2开始编程 241
10.5.3工作原理 243
10.5.4更多内容 244
10.5.5参考阅读 244
第 11章使用“原力” 245
11.1简介 245
11.2使用引力和相互作用力 246
11.2.1准备工作 246
11.2.2开始编程 246
11.2.3工作原理 249
11.2.4参考阅读 255
11.3自定义速度 255
11.3.1准备工作 255
11.3.2开始编程 255
11.3.3工作原理 257
11.3.4参考阅读 258
11.4设置连接约束 259
11.4.1准备工作 259
11.4.2开始编程 259
11.4.3工作原理 263
11.4.4参考阅读 268
11.5借助力来辅助可视化 268
11.5.1准备工作 268
11.5.2开始编程 268
11.5.3工作原理 271
11.5.4参考阅读 272
11.6操作“力” 272
11.6.1准备工作 273
11.6.2开始编程 273
11.6.3工作原理 276
11.6.4参考阅读 278
11.7创建力导向图 278
11.7.1准备工作 278
11.7.2开始编程 278
11.7.3工作原理 280
11.7.4参考阅读 282
第 12章地图的奥秘 283
12.1简介 283
12.2美国地图的投影 283
12.2.1GeoJSON 283
12.2.2准备工作 285
12.2.3开始编程 285
12.2.4工作原理 287
12.2.5参考阅读 288
12.3等值区域图的构建 288
12.3.1准备工作 289
12.3.2开始编程 289
12.3.3工作原理 291
12.3.4参考阅读 291
第 13章测试驱动 292
13.1简介 292
13.2 下载Jasmine并搭建测试环境 293
13.2.1准备工作 293
13.2.2开始编程 294
13.2.3工作原理 295
13.2.4参考阅读 295
13.3测试驱动—创建图表 295
13.3.1准备工作 296
13.3.2开始编程 296
13.3.3工作原理 297
13.4测试驱动—SVG渲染 298
13.4.1准备工作 298
13.4.2开始编程 298
13.4.3工作原理 299
13.5测试驱动—精确渲染 300
13.5.1准备工作 300
13.5.2开始编程 300
13.5.3工作原理 302
13.5.4参考阅读 303
附录 分分钟搞定交互式分析 304
简介 304
Crossfilter.js库 304
多维图表库—dc.js 308