人工智能和大數(shù)據(jù)是當(dāng)今時(shí)代的兩個(gè)鮮明的技術(shù)特征,而數(shù)據(jù)可視化一直是伴隨著這兩大技術(shù)領(lǐng)域的熱門(mén)研究方向,促進(jìn)了眾多智能化應(yīng)用的發(fā)展。
本書(shū)系統(tǒng)性講解了數(shù)據(jù)可視化技術(shù)的原理和實(shí)現(xiàn)方法,并給出一些簡(jiǎn)單實(shí)用的案例。全書(shū)共10章,其中第1至8章以VTK數(shù)據(jù)可視化平臺(tái)為基礎(chǔ),利用Python編程語(yǔ)言,系統(tǒng)性地講解了數(shù)據(jù)可視化的原理和實(shí)現(xiàn),包括緒論、可視化的圖形基礎(chǔ)、可視化原理與過(guò)程、可視化數(shù)據(jù)表示、可視化算法設(shè)計(jì)、可視化建模技術(shù)、圖像處理技術(shù)、體可視化;第9、10兩章側(cè)重于利用Matplolib工具實(shí)現(xiàn)數(shù)據(jù)可視化,用于繪制統(tǒng)計(jì)圖表、時(shí)間序列數(shù)據(jù)等一些功能。各章均附有一定量的習(xí)題,方便讀者掌握相關(guān)知識(shí)。本書(shū)為浙江省省級(jí)新形態(tài)教材,配有豐富的教學(xué)資源,可通過(guò)掃描二維碼獲取。
本書(shū)可作為高等院校相關(guān)專業(yè)的教材,也可作為大數(shù)據(jù)和數(shù)據(jù)可視化領(lǐng)域應(yīng)用開(kāi)發(fā)人員及編程愛(ài)好者的參考材料。
人工智能和大數(shù)據(jù)是當(dāng)今時(shí)代的兩個(gè)鮮明的技術(shù)特征,而數(shù)據(jù)可視化一直是伴隨著這兩大技術(shù)領(lǐng)域的熱門(mén)研究方向,促進(jìn)了眾多智能化應(yīng)用的發(fā)展。我國(guó)先后發(fā)布了《新一代人工智能發(fā)展規(guī)劃》和《大數(shù)據(jù)產(chǎn)業(yè)發(fā)展規(guī)劃》,鮮明地提出要加快研發(fā)新一代數(shù)據(jù)可視化軟件產(chǎn)品,鼓勵(lì)高校探索培養(yǎng)大數(shù)據(jù)和數(shù)據(jù)可視化領(lǐng)域?qū)I(yè)型人才和跨界復(fù)合型人才機(jī)制。數(shù)據(jù)可視化技術(shù)是一項(xiàng)應(yīng)用性強(qiáng)、實(shí)用且有效的技術(shù),在各行各業(yè)的人工智能和大數(shù)據(jù)發(fā)展中均占據(jù)非常重要的位置,屬于相關(guān)專業(yè)能力培養(yǎng)的重要元素和社會(huì)迫切需要的職業(yè)技能。在新的時(shí)期,教育部確定了以智能制造、云計(jì)算、人工智能、機(jī)器人等新興產(chǎn)業(yè)用于改造傳統(tǒng)工科專業(yè),為開(kāi)展數(shù)據(jù)可視化的教學(xué)任務(wù)吹響了前進(jìn)的號(hào)角。
本書(shū)全方位地講解了數(shù)據(jù)可視化的核心技術(shù)原理和算法設(shè)計(jì)理念,結(jié)合VTK數(shù)據(jù)可視化平臺(tái)和Python編程語(yǔ)言給出了數(shù)據(jù)可視化技術(shù)具體的實(shí)現(xiàn),提供了對(duì)應(yīng)的習(xí)題,在實(shí)踐部分單獨(dú)給出了若干Python數(shù)據(jù)可視化編程工具介紹,有助于學(xué)習(xí)者得到完善而系統(tǒng)化的訓(xùn)練。本書(shū)的編寫(xiě)符合國(guó)家對(duì)于新時(shí)期人工智能與大數(shù)據(jù)人才培養(yǎng)的期冀以及高等院校新工科應(yīng)用型人才培養(yǎng)的理念。
本書(shū)共分10章,主要內(nèi)容如下:第1章緒論;第2章可視化的圖形基礎(chǔ);第3章可視化原理與過(guò)程;第4章可視化數(shù)據(jù)表示;第5章可視化算法設(shè)計(jì);第6章可視化建模技術(shù);第7章圖像處理技術(shù);第8章體可視化;第9章Matplotlib可視化;第10章Matplotlib高級(jí)功能。
本書(shū)主要有以下幾個(gè)特點(diǎn):
(1) 對(duì)數(shù)據(jù)可視化知識(shí)進(jìn)行了全面的講解。
書(shū)中介紹了可視化的圖形基礎(chǔ)、可視化原理與過(guò)程以及可視化數(shù)據(jù)表示、算法設(shè)計(jì)、建模技術(shù)等內(nèi)容,還對(duì)數(shù)據(jù)可視化相關(guān)的圖形處理技術(shù)以及體可視化技術(shù)進(jìn)行了探討。
(2) 以深入淺出的方式進(jìn)行知識(shí)講解,讓學(xué)生輕松上手學(xué)習(xí)。
本書(shū)的編寫(xiě)突出理論精華并以理論與實(shí)際結(jié)合為導(dǎo)向,書(shū)中給出的公式、算法以少而精為原則,讓非數(shù)學(xué)專業(yè)以及僅具有普通數(shù)學(xué)基礎(chǔ)的學(xué)生也能夠理解和把握相關(guān)知識(shí)。
(3) 實(shí)現(xiàn)了理論與實(shí)踐的結(jié)合,強(qiáng)調(diào)對(duì)學(xué)生動(dòng)手能力的培養(yǎng)。
全書(shū)分為數(shù)據(jù)可視化原理和數(shù)據(jù)可視化編程訓(xùn)練兩部分。其中原理部分在系統(tǒng)性講解數(shù)據(jù)可視化理論脈絡(luò)的同時(shí),也給出理論問(wèn)題的編程實(shí)現(xiàn);而實(shí)踐部分則從可視化實(shí)用編程的角度,提供了若干通俗易懂的常用可視化編程實(shí)現(xiàn)案例。全書(shū)通過(guò)例題、練習(xí)、實(shí)驗(yàn)、測(cè)試等諸多方面對(duì)學(xué)生進(jìn)行全方位的訓(xùn)練,做到了理論與實(shí)踐相結(jié)合,也方便老師結(jié)合課時(shí)和課程特點(diǎn)進(jìn)行教學(xué)內(nèi)容的差異化選取。
(4) 案例和練習(xí)均采用通用編程方法設(shè)計(jì),具有廣泛的適用性。
本書(shū)的案例均采用Python程序或網(wǎng)頁(yè)代碼等通用編程方法編寫(xiě),書(shū)中的案例實(shí)現(xiàn)以開(kāi)源軟件平臺(tái)和工具為基石,不但適合作為高等院校相關(guān)專業(yè)的教材,也適合作為廣大工程技術(shù)人員開(kāi)發(fā)數(shù)據(jù)可視化產(chǎn)品的參考材料。
采用本書(shū)作為教材時(shí),具體教學(xué)安排可參考如下建議:
(1) 本書(shū)作為計(jì)算機(jī)、數(shù)據(jù)工程、信息技術(shù)、電子、自動(dòng)化、人工智能、大數(shù)據(jù)等相關(guān)專業(yè)本科或研究生數(shù)據(jù)可視化相關(guān)課程的教材時(shí),建議采用48或64學(xué)時(shí),可結(jié)合專業(yè)特點(diǎn)及學(xué)時(shí)具體安排。
(2) 本書(shū)作為專科院;蚵殬I(yè)技術(shù)學(xué)院的教材時(shí),建議采用64學(xué)時(shí),可結(jié)合專業(yè)特點(diǎn)及學(xué)時(shí)安排講授本書(shū)的全部章節(jié),或選講部分實(shí)踐性強(qiáng)又容易理解的章節(jié)。
(3) 本書(shū)作為數(shù)據(jù)可視化培訓(xùn)用書(shū)時(shí),建議培訓(xùn)時(shí)間為7~12天,可結(jié)合培訓(xùn)學(xué)時(shí)安排講授本書(shū)的全部章節(jié),或結(jié)合培訓(xùn)目標(biāo)選擇相關(guān)理論部分和實(shí)踐部分的章節(jié)。
本書(shū)配備多媒體教學(xué)資料,相關(guān)例題和一些必要資料可以直接通過(guò)掃描書(shū)中二維碼查詢。為方便教學(xué),本書(shū)提供全套教學(xué)課件、例題的源代碼、例題和課后題中涉及的所有數(shù)據(jù)文件、參考教學(xué)大綱、學(xué)時(shí)分配表以及試題樣卷等資料,可向西安電子科技大學(xué)出版社索取,或在出版社官網(wǎng)(http://www.xduph.com)自行查詢。本書(shū)也開(kāi)放了課后習(xí)題的參考答案,有需要的老師請(qǐng)直接聯(lián)系西安電子科技大學(xué)出版社獲取。
本書(shū)被認(rèn)定為新工科應(yīng)用型人才培養(yǎng)電子信息類系列教材和浙江省普通高校“十三五”新形態(tài)教材,其中第1~8章由林勇編寫(xiě)、第9~10章由陸星家編寫(xiě),全書(shū)由林勇審核、統(tǒng)稿、定稿,書(shū)中程序代碼的運(yùn)行情況可在對(duì)應(yīng)二維碼的視頻資源中得以驗(yàn)證。本書(shū)編寫(xiě)過(guò)程中還得到了寧波工程學(xué)院、寧波大學(xué)、浙江大學(xué)、清華長(zhǎng)三角研究院等院校師生和西安電子科技大學(xué)出版社、清華大學(xué)出版社等單位的鼎力支持和幫助,在此表示衷心的感謝。特別感謝尹天鶴、滕宇、張昱雯、高志遠(yuǎn)、韓明、梁方楚、劉鳳秋、陳志榮等老師的支持和參與。由于編者水平有限,書(shū)中難免有錯(cuò)漏之處,懇請(qǐng)廣大讀者不吝指出并提出寶貴意見(jiàn)與建議,我們將在今后再版時(shí)修訂完善。
作 者
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)計(jì)圖表的爆發(fā) 8
1.2.4 數(shù)據(jù)與藝術(shù)的有機(jī)結(jié)合 9
1.2.5 交互可視化、信息可視化與可視化
分析 11
1.3 視覺(jué)與認(rèn)知 12
1.3.1 視覺(jué)感知 12
1.3.2 視覺(jué)認(rèn)知 13
1.4 數(shù)據(jù)可視化與知識(shí)發(fā)現(xiàn)的關(guān)系 17
1.4.1 數(shù)據(jù)科學(xué)的發(fā)展 17
1.4.2 知識(shí)發(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章 可視化原理與過(guò)程 34
3.1 可視化場(chǎng)景 34
3.1.1 建模方法 34
3.1.2 場(chǎng)景與演員 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 通過(guò)管線選取濾波器 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è)計(jì) 75
5.1 標(biāo)量可視化 75
5.1.1 顏色對(duì)照 75
5.1.2 輪廓表示 78
5.1.3 標(biāo)量生成 90
5.2 向量可視化 93
5.2.1 有向圖 93
5.2.2 向量場(chǎng) 96
5.2.3 流體運(yùn)動(dòng) 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 二項(xiàng)式隱函數(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 通過(guò)表面繪制形體 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 對(duì)象序體繪制 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高級(jí)功能 207
9.1.3 Matplotlib結(jié)構(gòu) 209
9.2 Matplotlib常見(jiàn)圖表 210
9.2.1 基礎(chǔ)圖形 210
9.2.2 高級(jí)繪圖 221
9.2.3 圖形的完善 227
9.3 3D圖形和多子圖 232
9.3.1 基礎(chǔ)3D圖形 233
9.3.2 高級(jí)3D圖形 237
9.3.3 多子圖 241
本章小結(jié) 243
習(xí)題 243
第10章 Matplotlib高級(jí)功能 245
10.1 時(shí)間序列數(shù)據(jù) 245
10.1.1 時(shí)間序列數(shù)據(jù)的特點(diǎn) 245
10.1.2 時(shí)間序列處理模塊 246
10.1.3 時(shí)間序列數(shù)據(jù)可視化方法 248
10.2 自定義功能和動(dòng)畫(huà) 252
10.2.1 自定義繪圖 252
10.2.2 自定義動(dòng)畫(huà) 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