精通D3.js:互動式數據可視化高級編程

精通D3.js:互動式數據可視化高級編程

《精通D3.js:互動式數據可視化高級編程》是2015年9月電子工業出版社出版的圖書,作者是呂之華。

基本介紹

  • 書名:精通D3.js:互動式數據可視化高級編程
  • 作者:呂之華
  • ISBN:978-7-121-26776-5
  • 頁數:404頁
  • 定價:79.00元
  • 出版社:電子工業出版社
  • 出版時間:2015年9月
  • 裝幀:平裝
  • 開本:16
內容簡介,內容提要,作者簡介,目錄,

內容簡介

《精通D3.js:互動式數據可視化高級編程》以當前流行的數據可視化技術D3.js為主要內容,分為三大部分,總計13章。第一部分講述基礎知識,第二部分學習製作各種常見圖表,第三部分講解互動式圖表及地圖的進階套用。《精通D3.js:互動式數據可視化高級編程》是一個相對完整的D3.js教程,講解此技術所有重要的知識點,既有基礎入門知識,又有相對深入的內容。筆者秉持以下原則:由易到難,循序漸進,圖文並茂,清晰易懂。
《精通D3.js:互動式數據可視化高級編程》適合有一定計算機基礎的讀者,需要熟悉C、C++、Java、JavaScript等至少一門程式語言,能夠理解基礎的數據結構和算法。

內容提要

《精通D3.js:互動式數據可視化高級編程》以當前流行的數據可視化技術D3.js為主要內容,分為三大部分,總計13章。第一部分講述基礎知識,第二部分學習製作各種常見圖表,第三部分講解互動式圖表及地圖的進階套用。《精通D3.js:互動式數據可視化高級編程》是一個相對完整的D3.js教程,講解此技術所有重要的知識點,既有基礎入門知識,又有相對深入的內容。筆者秉持以下原則:由易到難,循序漸進,圖文並茂,清晰易懂。
《精通D3.js:互動式數據可視化高級編程》適合有一定計算機基礎的讀者,需要熟悉C、C++、Java、JavaScript等至少一門程式語言,能夠理解基礎的數據結構和算法。

作者簡介

呂之華,廣西桂林人,1989年生。2012年畢業於西北農林科技大學軟體工程專業,同年獲日本政府國家獎學金赴日,就讀於日本岩手大學設計與媒體專業,2015年獲得碩士學位。目前正攻讀博士學位。
2014年與好友創辦OUR D3.JS數據可視化專題站,以D3.js為題發表一系列教學文章,獲得讀者好評。本書即以專題站的文章為基礎擴充而成,經過耐心地歸納、整理、調查、修補,內容更加豐富易懂。
作者喜讀儒家經典、三國演義等中國古籍,喜看古裝劇,熱愛中華傳統文化。閒暇時練習書法,養氣修身。工作之餘喜歡旅遊、健身、游泳。不喜與人相爭,近來潛心研讀儒佛道三家學說。

目錄

第1章 D3簡介 1
1.1 D3是什麼 1
1.1.1 D3簡史 2
1.1.2 D3的優勢 2
1.1.3 D3的適用範圍 3
1.2 數據可視化是什麼 3
1.2.1 目的 4
1.2.2 構成要素 4
1.2.3 相關概念 6
1.3 圖表種類 6
1.4 學習方法 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選擇器 20
2.2.3 綜合運用 23
2.3 JavaScript 25
2.3.1 在HTML中使用JavaScript 26
2.3.2 語法 26
2.3.3 變數 27
2.3.4 數據類型 28
2.3.5 操作符 30
2.3.6 語句 32
2.3.7 函式 34
2.3.8 對象 34
2.3.9 數組 35
2.4 DOM 36
2.4.1 結構 37
2.4.2 訪問和修改HTML元素 37
2.4.3 添加和刪除節點 38
2.4.4 事件 39
2.5 SVG 40
2.5.1 點陣圖和矢量圖 40
2.5.2 圖形元素 41
2.5.3 文字 46
2.5.4 樣式 47
2.5.5 標記 48
2.5.6 濾鏡 50
2.5.7 漸變 51
第3章 安裝和使用 53
3.1 安裝 53
3.1.1 下載檔案 54
3.1.2 網路引用 54
3.2 搭建伺服器 54
3.3 HELLO, WORLD 57
3.4 繪製矢量圖 58
3.5 調試 59
第4章 選擇集與數據 61
4.1 選擇元素 61
4.2 選擇集 63
4.2.1 查看狀態 63
4.2.2 設定和獲取屬性 63
4.3 添加、插入和刪除 66
4.4 數據綁定 67
4.4.1 datum()的工作過程 68
4.4.2 data()的工作過程 71
4.4.3 綁定的順序 74
4.5 選擇集的處理 76
4.5.1 enter的處理方法 76
4.5.2 exit的處理方法 77
4.5.3 處理模板 78
4.5.4 過濾器 79
4.5.5 選擇集的順序 79
4.5.6 each()的套用 80
4.5.7 call()的套用 80
4.6 數組的處理 81
4.6.1 排序 81
4.6.2 求值 82
4.6.3 運算元組 86
4.6.4 映射(Map) 89
4.6.5 集合(Set) 91
4.6.6 嵌套結構(Nest) 92
4.7 柱形圖的製作 96
4.7.1 矩形和文字 97
4.7.2 更新數據 101
第5章 比例尺和坐標軸 105
5.1 定量比例尺 105
5.1.1 線性比例尺 106
5.1.2 指數和對數比例尺 109
5.1.3 量子和分位比例尺 110
5.1.4 閾值比例尺 112
5.2 序數比例尺 113
5.3 坐標軸 118
5.3.1 繪製方法 119
5.3.2 刻度 121
5.3.3 各比例尺的坐標軸 122
5.4 柱形圖的坐標軸 123
5.5 散點圖的製作 125
第6章 繪製 128
6.1 顏色 128
6.1.1 RGB 129
6.1.2 HSL 130
6.1.3 插值 131
6.2 線段生成器 132
6.3 區域生成器 136
6.4 弧生成器 137
6.5 符號生成器 140
6.6 弦生成器 142
6.7 對角線生成器 144
6.8 折線圖的製作 145
第7章 動畫 151
7.1 過渡效果 151
7.1.1 過渡的啟動 152
7.1.2 過渡的屬性 155
7.1.3 子元素 158
7.1.4 each()和call() 160
7.1.5 過渡樣式 162
7.2 定時器 163
7.2.1 setInterval和setTimeout 163
7.2.2 d3.timer 164
7.3 套用過渡的場合 165
7.4 簡單的動畫製作 171
7.4.1 時鐘 171
7.4.2 小球運動 172
第8章 互動 174
8.1 互動式入門 174
8.1.1 滑鼠 176
8.1.2 鍵盤 178
8.1.3 觸屏 180
8.2 事件 182
8.3 行為 183
8.3.1 拖曳 184
8.3.2 縮放 186
第9章 導入和導出 191
9.1 檔案導入 191
9.1.1 JSON 192
9.1.2 CSV 194
9.1.3 XML 198
9.1.4 TEXT 199
9.2 檔案導出 200
9.2.1 導出為SVG檔案 200
9.2.2 編輯矢量圖 203
第10章 布局 206
10.1 布局是什麼 206
10.2 餅狀圖 207
10.3 力導向圖 213
10.4 弦圖 221
10.5 樹狀圖 228
10.6 集群圖 234
10.7 捆圖 238
10.8 打包圖 245
10.9 直方圖 248
10.10 分區圖 255
10.11 堆疊圖 261
10.12 矩陣樹圖 268
第11章 地圖 274
11.1 地圖的數據 274
11.1.1 獲取數據 275
11.1.2 簡化數據 278
11.1.3 GeoJSON 280
11.1.4 TopoJSON 284
11.2 中國地圖 285
11.2.1 基於GeoJSON 285
11.2.2 基於TopoJSON 289
11.3 地理路徑 297
11.3.1 地理路徑生成器 297
11.3.2 形狀生成器 301
11.4 投影 306
11.5 球面數學 315
第12章 友好的互動 317
12.1 提示框 317
12.1.1 餅狀圖的提示框 318
12.1.2 提示框的樣式 321
12.2 坐標系中的焦點 323
12.2.1 折線圖的焦點 323
12.2.2 為折線圖添加提示框 329
12.3 元素組合 334
12.3.1 餅狀圖的拖曳 335
12.3.2 移入和移出 336
12.3.3 合併 345
12.4 區域選擇 347
12.4.1 在SVG畫板里選擇一塊區域 348
12.4.2 散點圖的區域選擇 350
12.5 開關 353
12.5.1 思維導圖的構造思路 353
12.5.2 思維導圖的製作 356
第13章 地圖進階 363
13.1 值域的顏色 363
13.2 標註 368
13.2.1 標註地點 368
13.2.2 夜光圖 370
13.3 標線 373
13.3.1 帶有箭頭的標線 373
13.3.2 球狀地圖的標線 377
13.4 拖動和縮放 378
13.4.1 平面地圖 378
13.4.2 球面地圖 381
13.5 力導向地圖 383
13.5.1 Voronoi圖和Delaunay三角剖分 383
13.5.2 力導向的中國地圖 387
附錄A 彩色插圖 393
附錄B 參考文獻 410

相關詞條

熱門詞條

聯絡我們