人工智能和大數(shù)據(jù)是當(dāng)今時代的兩個鮮明的技術(shù)特征,而數(shù)據(jù)可視化一直是伴隨著這兩大技術(shù)領(lǐng)域的熱門研究方向,促進(jìn)了眾多智能化應(yīng)用的發(fā)展。
本書系統(tǒng)性講解了數(shù)據(jù)可視化技術(shù)的原理和實(shí)現(xiàn)方法,并給出一些簡單實(shí)用的案例。全書共10章,其中第1至8章以VTK數(shù)據(jù)可視化平臺為基礎(chǔ),利用Python編程語言,系統(tǒng)性地講解了數(shù)據(jù)可視化的原理和實(shí)現(xiàn),包括緒論、可視化的圖形基礎(chǔ)、可視化原理與過程、可視化數(shù)據(jù)表示、可視化算法設(shè)計、可視化建模技術(shù)、圖像處理技術(shù)、體可視化;第9、10兩章側(cè)重于利用Matplolib工具實(shí)現(xiàn)數(shù)據(jù)可視化,用于繪制統(tǒng)計圖表、時間序列數(shù)據(jù)等一些功能。各章均附有一定量的習(xí)題,方便讀者掌握相關(guān)知識。本書為浙江省省級新形態(tài)教材,配有豐富的教學(xué)資源,可通過掃描二維碼獲取。
本書可作為高等院校相關(guān)專業(yè)的教材,也可作為大數(shù)據(jù)和數(shù)據(jù)可視化領(lǐng)域應(yīng)用開發(fā)人員及編程愛好者的參考材料。
人工智能和大數(shù)據(jù)是當(dāng)今時代的兩個鮮明的技術(shù)特征,而數(shù)據(jù)可視化一直是伴隨著這兩大技術(shù)領(lǐng)域的熱門研究方向,促進(jìn)了眾多智能化應(yīng)用的發(fā)展。我國先后發(fā)布了《新一代人工智能發(fā)展規(guī)劃》和《大數(shù)據(jù)產(chǎn)業(yè)發(fā)展規(guī)劃》,鮮明地提出要加快研發(fā)新一代數(shù)據(jù)可視化軟件產(chǎn)品,鼓勵高校探索培養(yǎng)大數(shù)據(jù)和數(shù)據(jù)可視化領(lǐng)域?qū)I(yè)型人才和跨界復(fù)合型人才機(jī)制。數(shù)據(jù)可視化技術(shù)是一項應(yīng)用性強(qiáng)、實(shí)用且有效的技術(shù),在各行各業(yè)的人工智能和大數(shù)據(jù)發(fā)展中均占據(jù)非常重要的位置,屬于相關(guān)專業(yè)能力培養(yǎng)的重要元素和社會迫切需要的職業(yè)技能。在新的時期,教育部確定了以智能制造、云計算、人工智能、機(jī)器人等新興產(chǎn)業(yè)用于改造傳統(tǒng)工科專業(yè),為開展數(shù)據(jù)可視化的教學(xué)任務(wù)吹響了前進(jìn)的號角。
本書全方位地講解了數(shù)據(jù)可視化的核心技術(shù)原理和算法設(shè)計理念,結(jié)合VTK數(shù)據(jù)可視化平臺和Python編程語言給出了數(shù)據(jù)可視化技術(shù)具體的實(shí)現(xiàn),提供了對應(yīng)的習(xí)題,在實(shí)踐部分單獨(dú)給出了若干Python數(shù)據(jù)可視化編程工具介紹,有助于學(xué)習(xí)者得到完善而系統(tǒng)化的訓(xùn)練。本書的編寫符合國家對于新時期人工智能與大數(shù)據(jù)人才培養(yǎng)的期冀以及高等院校新工科應(yīng)用型人才培養(yǎng)的理念。
本書共分10章,主要內(nèi)容如下:第1章緒論;第2章可視化的圖形基礎(chǔ);第3章可視化原理與過程;第4章可視化數(shù)據(jù)表示;第5章可視化算法設(shè)計;第6章可視化建模技術(shù);第7章圖像處理技術(shù);第8章體可視化;第9章Matplotlib可視化;第10章Matplotlib高級功能。
本書主要有以下幾個特點(diǎn):
(1) 對數(shù)據(jù)可視化知識進(jìn)行了全面的講解。
書中介紹了可視化的圖形基礎(chǔ)、可視化原理與過程以及可視化數(shù)據(jù)表示、算法設(shè)計、建模技術(shù)等內(nèi)容,還對數(shù)據(jù)可視化相關(guān)的圖形處理技術(shù)以及體可視化技術(shù)進(jìn)行了探討。
(2) 以深入淺出的方式進(jìn)行知識講解,讓學(xué)生輕松上手學(xué)習(xí)。
本書的編寫突出理論精華并以理論與實(shí)際結(jié)合為導(dǎo)向,書中給出的公式、算法以少而精為原則,讓非數(shù)學(xué)專業(yè)以及僅具有普通數(shù)學(xué)基礎(chǔ)的學(xué)生也能夠理解和把握相關(guān)知識。
(3) 實(shí)現(xiàn)了理論與實(shí)踐的結(jié)合,強(qiáng)調(diào)對學(xué)生動手能力的培養(yǎng)。
全書分為數(shù)據(jù)可視化原理和數(shù)據(jù)可視化編程訓(xùn)練兩部分。其中原理部分在系統(tǒng)性講解數(shù)據(jù)可視化理論脈絡(luò)的同時,也給出理論問題的編程實(shí)現(xiàn);而實(shí)踐部分則從可視化實(shí)用編程的角度,提供了若干通俗易懂的常用可視化編程實(shí)現(xiàn)案例。全書通過例題、練習(xí)、實(shí)驗、測試等諸多方面對學(xué)生進(jìn)行全方位的訓(xùn)練,做到了理論與實(shí)踐相結(jié)合,也方便老師結(jié)合課時和課程特點(diǎn)進(jìn)行教學(xué)內(nèi)容的差異化選取。
(4) 案例和練習(xí)均采用通用編程方法設(shè)計,具有廣泛的適用性。
本書的案例均采用Python程序或網(wǎng)頁代碼等通用編程方法編寫,書中的案例實(shí)現(xiàn)以開源軟件平臺和工具為基石,不但適合作為高等院校相關(guān)專業(yè)的教材,也適合作為廣大工程技術(shù)人員開發(fā)數(shù)據(jù)可視化產(chǎn)品的參考材料。
采用本書作為教材時,具體教學(xué)安排可參考如下建議:
(1) 本書作為計算機(jī)、數(shù)據(jù)工程、信息技術(shù)、電子、自動化、人工智能、大數(shù)據(jù)等相關(guān)專業(yè)本科或研究生數(shù)據(jù)可視化相關(guān)課程的教材時,建議采用48或64學(xué)時,可結(jié)合專業(yè)特點(diǎn)及學(xué)時具體安排。
(2) 本書作為專科院;蚵殬I(yè)技術(shù)學(xué)院的教材時,建議采用64學(xué)時,可結(jié)合專業(yè)特點(diǎn)及學(xué)時安排講授本書的全部章節(jié),或選講部分實(shí)踐性強(qiáng)又容易理解的章節(jié)。
(3) 本書作為數(shù)據(jù)可視化培訓(xùn)用書時,建議培訓(xùn)時間為7~12天,可結(jié)合培訓(xùn)學(xué)時安排講授本書的全部章節(jié),或結(jié)合培訓(xùn)目標(biāo)選擇相關(guān)理論部分和實(shí)踐部分的章節(jié)。
本書配備多媒體教學(xué)資料,相關(guān)例題和一些必要資料可以直接通過掃描書中二維碼查詢。為方便教學(xué),本書提供全套教學(xué)課件、例題的源代碼、例題和課后題中涉及的所有數(shù)據(jù)文件、參考教學(xué)大綱、學(xué)時分配表以及試題樣卷等資料,可向西安電子科技大學(xué)出版社索取,或在出版社官網(wǎng)(http://www.xduph.com)自行查詢。本書也開放了課后習(xí)題的參考答案,有需要的老師請直接聯(lián)系西安電子科技大學(xué)出版社獲取。
本書被認(rèn)定為新工科應(yīng)用型人才培養(yǎng)電子信息類系列教材和浙江省普通高校“十三五”新形態(tài)教材,其中第1~8章由林勇編寫、第9~10章由陸星家編寫,全書由林勇審核、統(tǒng)稿、定稿,書中程序代碼的運(yùn)行情況可在對應(yīng)二維碼的視頻資源中得以驗證。本書編寫過程中還得到了寧波工程學(xué)院、寧波大學(xué)、浙江大學(xué)、清華長三角研究院等院校師生和西安電子科技大學(xué)出版社、清華大學(xué)出版社等單位的鼎力支持和幫助,在此表示衷心的感謝。特別感謝尹天鶴、滕宇、張昱雯、高志遠(yuǎn)、韓明、梁方楚、劉鳳秋、陳志榮等老師的支持和參與。由于編者水平有限,書中難免有錯漏之處,懇請廣大讀者不吝指出并提出寶貴意見與建議,我們將在今后再版時修訂完善。
作 者
2022年1月10日
第一部分 數(shù)據(jù)可視化原理
第1章 緒論 2
1.1 概念與意義 2
1.1.1 數(shù)據(jù)可視化的概念 2
1.1.2 數(shù)據(jù)可視化的意義和作用 2
1.2 歷史與演進(jìn) 5
1.2.1 抽象圖形表示 5
1.2.2 科學(xué)可視化的發(fā)展 7
1.2.3 統(tǒng)計圖表的爆發(fā) 8
1.2.4 數(shù)據(jù)與藝術(shù)的有機(jī)結(jié)合 9
1.2.5 交互可視化、信息可視化與可視化
分析 11
1.3 視覺與認(rèn)知 12
1.3.1 視覺感知 12
1.3.2 視覺認(rèn)知 13
1.4 數(shù)據(jù)可視化與知識發(fā)現(xiàn)的關(guān)系 17
1.4.1 數(shù)據(jù)科學(xué)的發(fā)展 17
1.4.2 知識發(fā)現(xiàn)與數(shù)據(jù)可視化的結(jié)合 18
本章小結(jié) 19
習(xí)題 19
第2章 可視化的圖形基礎(chǔ) 21
2.1 圖形渲染 21
2.1.1 概念 21
2.1.2 方式 21
2.1.3 應(yīng)用示例 22
2.2 顏色與光照 23
2.2.1 顏色 23
2.2.2 光照 25
2.3 視角 26
2.3.1 虛擬相機(jī) 26
2.3.2 坐標(biāo)系 28
2.3.3 坐標(biāo)變換 29
2.4 透明度與色彩合成 31
本章小結(jié) 33
習(xí)題 33
第3章 可視化原理與過程 34
3.1 可視化場景 34
3.1.1 建模方法 34
3.1.2 場景與演員 35
3.1.3 圖形硬件 35
3.2 可視化模型 37
3.2.1 數(shù)據(jù)源 37
3.2.2 數(shù)據(jù)濾波 37
3.2.3 可視化處理 39
3.3 可視化管線 42
3.3.1 可視化管線概念 42
3.3.2 管線視圖 43
3.3.3 通過管線選取濾波器 45
本章小結(jié) 46
習(xí)題 46
第4章 可視化數(shù)據(jù)表示 47
4.1 可視化數(shù)據(jù)表征 47
4.1.1 模型與數(shù)據(jù) 47
4.1.2 采樣與插值 49
4.1.3 數(shù)據(jù)的結(jié)構(gòu)特征 51
4.2 可視化圖元 54
4.2.1 數(shù)據(jù)集 54
4.2.2 圖元模型 57
4.2.3 全局坐標(biāo)與局部坐標(biāo) 61
4.3 數(shù)據(jù)集分類 63
4.3.1 數(shù)據(jù)集建模 64
4.3.2 結(jié)構(gòu)化坐標(biāo) 68
4.3.3 圖元鑲嵌 71
本章小結(jié) 74
習(xí)題 74
第5章 可視化算法設(shè)計 75
5.1 標(biāo)量可視化 75
5.1.1 顏色對照 75
5.1.2 輪廓表示 78
5.1.3 標(biāo)量生成 90
5.2 向量可視化 93
5.2.1 有向圖 93
5.2.2 向量場 96
5.2.3 流體運(yùn)動 103
5.3 張量可視化 106
5.3.1 流線形張量 106
5.3.2 線形張量 110
5.3.3 橢球形張量 114
本章小結(jié) 116
習(xí)題 116
第6章 可視化建模技術(shù) 118
6.1 隱函數(shù)方法 119
6.1.1 隱函數(shù)輪廓 119
6.1.2 二項式隱函數(shù) 122
6.1.3 隱函數(shù)組合成像 124
6.2 算法模型 130
6.2.1 隱式建模 130
6.2.2 模底凸生 133
6.2.3 圖符表示 136
6.3 數(shù)據(jù)選取 138
6.3.1 數(shù)據(jù)提取 138
6.3.2 圖形剪切 144
6.3.3 圖元選取 148
本章小結(jié) 152
習(xí)題 152
第7章 圖像處理技術(shù) 154
7.1 圖像數(shù)據(jù)表示 154
7.1.1 紋理貼圖 155
7.1.2 圖像生成 160
7.1.3 圖像合成 164
7.2 圖像平滑處理 165
7.2.1 圖像修復(fù) 165
7.2.2 圖像噪聲 167
7.2.3 非線性平滑 170
7.3 圖像頻譜分析 171
7.3.1 圖像亞采樣 171
7.3.2 圖像衰減 174
7.3.3 圖像頻域變換 176
本章小結(jié) 181
習(xí)題 182
第8章 體可視化 183
8.1 通過表面繪制形體 183
8.1.1 平面扭曲 183
8.1.2 表面光滑 186
8.1.3 三角條帶化 189
8.2 形體繪制中點(diǎn)集的運(yùn)用 191
8.2.1 密集點(diǎn)云繪制 191
8.2.2 點(diǎn)集噴繪 193
8.2.3 表面數(shù)據(jù)抽取與形體壓縮 194
8.3 繪制體數(shù)據(jù) 196
8.3.1 體數(shù)據(jù)的繪制 196
8.3.2 圖像序體繪制 198
8.3.3 對象序體繪制 200
本章小結(jié) 201
習(xí)題 201
第二部分 數(shù)據(jù)可視化編程訓(xùn)練
第9章 Matplotlib可視化 204
9.1 Matplotlib基礎(chǔ) 204
9.1.1 Numpy基礎(chǔ)功能 204
9.1.2 Numpy高級功能 207
9.1.3 Matplotlib結(jié)構(gòu) 209
9.2 Matplotlib常見圖表 210
9.2.1 基礎(chǔ)圖形 210
9.2.2 高級繪圖 221
9.2.3 圖形的完善 227
9.3 3D圖形和多子圖 232
9.3.1 基礎(chǔ)3D圖形 233
9.3.2 高級3D圖形 237
9.3.3 多子圖 241
本章小結(jié) 243
習(xí)題 243
第10章 Matplotlib高級功能 245
10.1 時間序列數(shù)據(jù) 245
10.1.1 時間序列數(shù)據(jù)的特點(diǎn) 245
10.1.2 時間序列處理模塊 246
10.1.3 時間序列數(shù)據(jù)可視化方法 248
10.2 自定義功能和動畫 252
10.2.1 自定義繪圖 252
10.2.2 自定義動畫 253
10.2.3 坐標(biāo)系變換 255
10.3 圖像處理 256
10.3.1 顯示圖像 256
10.3.2 灰度變換和圖像輪廓提取 258
10.3.3 直方圖和直方圖均衡 259
本章小結(jié) 261
習(xí)題 261
參考文獻(xiàn) 263