本書以世界范圍內(nèi)流行的可視化工具D3為主題,包含D3簡介、Web前端基本知識、D3開發(fā)環(huán)境的構(gòu)建、D3基礎(chǔ)、D3學(xué)習(xí)主線,以及D3版本D3.js 4.0的知識。學(xué)習(xí)本書后,相信讀者能在查詢API的情況下完成數(shù)據(jù)可視化的工作。為使閱讀盡量簡單、易懂,本書附帶非常豐富的插圖。 本書在設(shè)計上希望讓零基礎(chǔ)的讀者也能閱讀,但這或許很難。讀者也許需要至少掌握一門編程語言,例如C/C 、Java、JavaScript,并了解網(wǎng)頁編寫的基本知識。
精通D3.js(第2版)》介紹了D3.js,并新增了D3.4x版本的相關(guān)知識,是比較系統(tǒng)完整的教程。由淺入深,既有基礎(chǔ)入門知識,又有相對深入的內(nèi)容。圖文并茂,語言流暢,講解清晰易懂。
呂之華,2012年軟件工程專業(yè)畢業(yè),同年赴日。2015年獲日本巖手大學(xué)設(shè)計與媒體專業(yè)碩士學(xué)位。多年專研數(shù)據(jù)可視化、計算機(jī)動畫等技術(shù)。
2014年起以D3.js為主題在網(wǎng)絡(luò)上發(fā)表了一系列文章,獲得讀者好評,本書是在此基礎(chǔ)上經(jīng)過精選和擴(kuò)充形成的。2017年本書第2版出版。
目 錄
第1章 D3簡介 1
1.1 D3是什么 1
1.1.1 D3簡史 2
1.1.2 D3的優(yōu)勢 3
1.1.3 D3的適用范圍 4
1.2 數(shù)據(jù)可視化是什么 4
1.2.1 目的 5
1.2.2 構(gòu)成要素 5
1.2.3 相關(guān)概念 7
1.3 圖表種類 7
1.4 學(xué)習(xí)方法 10
1.4.1 預(yù)備知識 11
1.4.2 學(xué)習(xí)順序 11
1.4.3 D3難嗎 11
第2章 Web前端開發(fā)基礎(chǔ) 13
2.1 瀏覽器和服務(wù)器 14
2.1.1 瀏覽器 14
2.1.2 服務(wù)器 15
2.2 HTML&CSS 16
2.2.1 HTML元素 17
2.2.2 CSS選擇器 17
2.3 JavaScript 18
2.3.1 在HTML中使用JavaScript 18
2.3.2 語法 19
2.3.3 變量 20
2.3.4 數(shù)據(jù)類型 21
2.3.5 操作符 23
2.3.6 語句 24
2.3.7 函數(shù) 27
2.3.8 對象 27
2.3.9 數(shù)組 28
2.4 DOM 29
2.4.1 結(jié)構(gòu) 29
2.4.2 訪問和修改HTML元素 30
2.4.3 添加和刪除節(jié)點(diǎn) 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 標(biāo)記 40
2.5.6 濾鏡 41
2.5.7 漸變 42
2.6 Canvas 43
2.6.1 開始繪圖 44
2.6.2 狀態(tài)機(jī) 44
2.6.3 基本圖形 45
2.6.4 文字 47
2.6.5 變形 48
2.6.6 圖片 49
2.6.7 漸變 49
2.7 色彩基礎(chǔ) 50
2.7.1 顏色空間 50
2.7.2 色相環(huán) 51
2.7.3 配色基礎(chǔ) 52
2.7.4 配色的心理效果 54
第3章 準(zhǔn)備開發(fā)環(huán)境 55
3.1 下載D3 55
3.1.1 通過本地引用 55
3.1.2 通過網(wǎng)絡(luò)引用 56
3.2 安裝Chrome和Sublime Text 56
3.3 安裝Apache HTTP Server 57
3.4 Hello World 60
3.5 繪制矢量圖 61
3.6 調(diào)試 62
第4章 D3基礎(chǔ):選擇集與數(shù)據(jù) 63
4.1 選擇元素 63
4.2 選擇集 64
4.2.1 查看狀態(tài) 64
4.2.2 設(shè)定和獲取屬性 65
4.3 添加、插入和刪除 68
4.4 數(shù)據(jù)綁定 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 數(shù)據(jù)更新時的處理模板 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 數(shù)組的常用方法 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 更新數(shù)據(jù) 92
第5章 比例尺和坐標(biāo)軸 96
5.1 定量比例尺 96
5.1.1 線性比例尺 97
5.1.2 指數(shù)比例尺和對數(shù)比例尺 100
5.1.3 量子比例尺和分位比例尺 101
5.1.4 閾值比例尺 103
5.2 序數(shù)比例尺 104
5.3 坐標(biāo)軸 108
5.3.1 繪制方法 109
5.3.2 刻度 111
5.3.3 各比例尺的坐標(biāo)軸 113
5.4 散點(diǎn)圖 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 區(qū)域生成器 123
6.4 弧生成器 125
6.5 符號生成器 127
6.6 弦生成器 129
6.7 對角線生成器 131
6.8 折線圖 132
第7章 動畫 137
7.1 過渡效果 137
7.1.1 創(chuàng)建過渡 138
7.1.2 過渡的屬性 141
7.1.3 子元素 144
7.1.4 事件監(jiān)聽和調(diào)用 146
7.1.5 過渡的樣式 148
7.2 散點(diǎn)圖的過渡效果 148
7.2.1 繪圖準(zhǔn)備 149
7.2.2 應(yīng)用過渡的散點(diǎn) 150
7.2.3 繪制坐標(biāo)軸 151
7.2.4 更新數(shù)據(jù)的事件 152
7.2.5 結(jié)果 153
第8章 交互 154
8.1 監(jiān)聽器 154
8.1.1 鼠標(biāo) 156
8.1.2 鍵盤 157
8.1.3 觸屏 159
8.2 事件d3.event 161
8.2.1 事件的種類 161
8.2.2 容器的相對坐標(biāo) 162
8.3 行為d3.behavior 163
8.3.1 拖曳 163
8.3.2 縮放 166
第9章 導(dǎo)入和導(dǎo)出 170
9.1 文件導(dǎo)入 170
9.1.1 JSON 171
9.1.2 CSV 173
9.1.3 XML 177
9.1.4 TEXT 178
9.2 文件導(dǎo)出 179
9.2.1 導(dǎo)出為SVG文件 179
9.2.2 編輯矢量圖 182
第10章 布局 185
10.1 餅狀圖 185
10.2 力導(dǎo)向圖 191
10.3 弦圖 197
10.4 樹圖 205
10.5 捆圖 210
10.6 直方圖 216
10.7 矩陣樹圖 223
第11章 地圖的基礎(chǔ) 228
11.1 地圖的數(shù)據(jù) 228
11.1.1 下載 228
11.1.2 簡化 232
11.1.3 GeoJSON 233
11.1.4 TopoJSON 237
11.2 中國地圖 239
11.2.1 基于GeoJSON 239
11.2.2 基于TopoJSON 242
11.3 地理路徑 250
11.3.1 地理路徑生成器 250
11.3.2 形狀生成器 254
11.4 投影 259
第12章 友好的交互 268
12.1 提示框 268
12.1.1 餅狀圖的提示框 269
12.1.2 提示框的樣式 271
12.2 坐標(biāo)系中的焦點(diǎn) 273
12.2.1 折線圖的焦點(diǎn) 274
12.2.2 為折線圖添加提示框 279
12.3 元素組合 283
12.3.1 餅狀圖的拖曳 284
12.3.2 移入和移出 286
12.3.3 合并 294
12.4 區(qū)域選擇 296
12.4.1 在SVG畫板里選擇一塊區(qū)域 297
12.4.2 散點(diǎn)圖的區(qū)域選擇 299
12.5 開關(guān) 301
12.5.1 思維導(dǎo)圖的構(gòu)造思路 302
12.5.2 思維導(dǎo)圖的制作 305
第13章 地圖的應(yīng)用 312
13.1 值域的顏色 312
13.2 標(biāo)注 316
13.2.1 標(biāo)注地點(diǎn) 317
13.2.2 夜光圖 319
13.3 標(biāo)線 321
13.3.1 帶有箭頭的標(biāo)線 322
13.3.2 球面地圖的標(biāo)線 324
13.4 拖曳和縮放 326
13.4.1 平面地圖 326
13.4.2 球面地圖 329
13.5 力導(dǎo)向地圖 330
13.5.1 Voronoi圖和Delaunay三角剖分 330
13.5.2 力導(dǎo)向的中國地圖 334
第14章 D3 4.x簡介 340
14.1 4.x的新功能 341
14.2 3.x如何升級到4.x 344
14.2.1 加載文件的變化 345
14.2.2 布局的變化規(guī)則 345
14.2.3 生成器的變化規(guī)則 346
14.2.4 比例尺的變化規(guī)則 346
14.2.5 升級小結(jié) 347
14.3 D3 4.x的設(shè)計思想 347
14.3.1 3.x和4.x的結(jié)構(gòu)區(qū)別 347
14.3.2 模塊化的優(yōu)點(diǎn) 348
14.3.3 可閱讀性和自我解釋 350
14.4 未來展望 351
14.4.1 模塊發(fā)展的百花齊放 352
14.4.2 應(yīng)用范圍擴(kuò)大 352
14.4.3 第二核心、第三核心 352
第15章 D3 4.x新功能剖析 354
15.1 全新的力導(dǎo)向圖 354
15.1.1 力的作用 355
15.1.2 控制時間 357
15.1.3 給Canvas添加拖放事件 358
15.1.4 4.x版完整的力導(dǎo)向圖 360
15.2 豐富多彩的調(diào)色板 364
15.2.1 配色模板 365
15.2.2 d3-color 367
15.3 功能倍增的圖形生成器 368
15.3.1 折線圖和線段生成器 369
15.3.2 消失的對角線生成器 372
15.3.3 更簡單的坐標(biāo)軸 374
15.4 更合理的布局 375
15.4.1 堆棧圖的數(shù)據(jù)結(jié)構(gòu) 376
15.4.2 從思維導(dǎo)圖來探究d3-hierarchy 380
15.4.3 全新的打包圖d3.pack 383
15.5 無限循環(huán)的過渡效果 384
15.5.1 單元素的無限過渡 385
15.5.2 多元素的無限過渡 386
第16章 D3 4.x在地圖上的應(yīng)用 387
16.1 Canvas地圖的基本功能 387
16.1.1 填充和描邊 388
16.1.2 選擇區(qū)域 390
16.1.3 拖曳和縮放 392
16.2 地圖上飛舞的流星 394
16.2.1 Canvas的流星效果 395
16.2.2 地圖兩點(diǎn)間的流星 396
16.3 地球儀 401
16.3.1 4.x的形狀生成器 401
16.3.2 Canvas球面地圖的旋轉(zhuǎn)和縮放 403
16.4 結(jié)合Leaflet.js和D3.js 407
16.4.1 Leaflet.js的簡介和安裝 408
16.4.2 載入地圖 408
16.4.3 加入標(biāo)注 412
16.4.4 添加SVG或Canvas到地圖上 414
附錄A 彩色插圖 419
參考文獻(xiàn) 436
很不錯,尤其是從未編過程序的人。可以帶領(lǐng)我們快速掌握D3知識
很好收獲很快