TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
Python繪圖指南:分形與數據可視化(簡體書)
滿額折

Python繪圖指南:分形與數據可視化(簡體書)

人民幣定價:89 元
定  價:NT$ 534 元
優惠價:87465
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:13 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

Python 是可視化的有力工具,被廣泛地應用於科學計算和繪圖領域。本書採用Turtle、Matplotlib、NumPy這三個Python工具,以分形與計算機影像處理的經典算法為例,通過程式和圖像説明讀者一步步掌握Python繪圖和資料可視化的方法和技巧,並且讓讀者感受到分形的魅力。

本書圖文並茂,講解細緻,既是Python的繪圖指南,也是分形的通俗化讀物,適合熟悉Python基礎知識,對分形和資料可視化感興趣的Python繪圖初學者。


作者簡介

胡潔,網名timedot,近20年IT從業和管理經驗,擔任過開發、測試經理、QA經理、高級項目經理等多個職務,擅長PB、C、C++、Java、Perl、Python等程序設計語言。熱愛傳統文化,喜愛程序設計,遵崇“科學藝術本相通,科技人文可相融”的創作理念,將致力於為計算機科學融入更多的人文氣息。

名人/編輯推薦

思想性:普及分形理論的經典算法,探索自然事物的無窮奧秘。

實戰性:程式繪圖,由淺及深,通俗易懂,示例豐富,講解細緻。

系統性:涵蓋資料可視化的概念、定義、組織、佈局、設計、製作等全過程,並提供完整的項目案例。

結構性:以繪圖為點,分形與資料可視化為線,結構清晰,邏輯嚴密,相輔相成,相合相融。


分形與可視化

“雲彩不是球體,山嶺不是錐體,海岸線不是圓周,樹皮並不光滑,閃電更不是沿直線傳播的。”

——《大自然的分形幾何》


“在計算機學科的分類中,利用人眼的感知能力對資料進行交互的可視表達以增強認知的技術,稱為可視化,它將不可見或難以直接顯示的資料轉化為可感知的圖形、符號、顏色、紋理等,增強資料識別效率,傳遞有效信息。”

——《數據可視化》


人類有一種與生俱來的“語言天賦”,即無須後天的訓練和學習就可以流利地解讀圖像語言。一份數字化報表,人們需要逐條流覽,才能獲知報表所記錄的情況,但是柱狀圖可以讓人一眼就知曉所傳達的信息。一座城市,道路複雜、河流交錯、人群聚居,但是只要一張地圖,就可以讓人快速瞭解這座城市的物理空間結構和人群分佈。一家大型企業,有很多不同職能的部門,工作的細分程度也很高,但是只要一張組織結構圖,就可以讓人迅速地明瞭這家企業的層級關係和職責分工。

人眼是一個視覺信號輸入處理器,這個處理器可以同時處理大量的信息,同時它具有很強的模式識別能力,可以快速地,甚至潛意識地解讀圖形、顏色、紋理等圖像符號,解讀的速度更是遠遠大於對數字或文本等形式的感知。正是因為人類視覺的這個特點,從文明初始起,人類便開始通過可視化來進行信息的記錄、推理和分析,借助圖形和圖像來研究、探索和傳播萬事萬物的原理和規律。分形理論的發展也是如此。

分形理論也被稱為分形幾何、大自然的幾何學,它是著名數學家本華·曼德勃羅(法語:Benoît B. Mandelbrot)在1975年構思和發展出來的一種新的幾何學。這種幾何學完全不同於經典的歐氏幾何,它把自然形態看作具有無限嵌套層次的精細結構,這種結構在不同的尺度下保持著某種相似性。也就是說,局部與整體相似,抑或局部是整體的縮影。分形理論既是科學,也是藝術,它的算法巧妙、圖形精美,並且蘊含了深刻的自然哲學思想。這種思想根植於傳統文化,在近代以科學實證的方式得到了充足的發展,被廣泛地應用於各行各業。有興趣的讀者可參看附錄A關於分形的介紹。

分形理論在發展的過程中,同樣應用了可視化技術。科學家們建立模型,在計算機上進行各種實驗,然後將實驗資料可視化,並在形成圖形和圖像的過程中捕獲和探索大自然各種形態的奧秘。在本書中,我們將採用Python繪圖工具還原分形理論的這些計算機實驗及可視化的過程。

Python繪圖

Python是一門免費、開源的高級程序設計語言,有著簡潔、易讀、靈活、易維護和模組化的優良特性,並且可以輕鬆地與其他程序設計語言及軟件集成。同時,Python有著豐富的協力廠商工具庫,其中的可視化工具既有基礎的Matplotlib,也有複雜的Seaborn、Bokeh,這些工具的使用非常簡便,代碼可複用、可交互,是實現可視化的強大助力。跟其他資料可視化工具相比,Python的優勢如下。

—對比Excel。Python繪圖無須按照步驟手工一步一步地操作,而是如同記事本寫文章一樣,只需要輸入幾行代碼,便可以調用資料,生成各式圖表,並且可以複用。Python作為一門程序設計語言,其繪圖更靈活、更自由,可以畫出Excel不具備的圖表及各種特殊效果,比如自訂的可視化交互、動畫、顏色渲染等。使用Excel最大的局限在於資料量不能太多,一旦資料量過多,計算機內存佔用負荷就會升高,圖形生成的效率就會降低,從而容易導致錯誤,但想要找出錯誤的原因也並不是一件容易的事。Python擅長科學計算,因此更適合對大量資料進行處理和可視化,生成圖形的效率也更高,同時,其簡潔、清晰的代碼風格也使得修改和定位錯誤更加容易。


對比R語言。R語言是一種用於統計分析和繪圖的語言,該語言的語法在表面上類似C語言,但在語義上是函數設計語言的變種。相比Python,R語言更適合科研繪圖,其更專業也更難學習。而Python是一種代表簡單主義思想的語言,其安裝配置步驟簡單,對於普通人來說,更容易學習和使用。學習Python繪圖,只需要熟悉Python的一些基礎知識,就能生成各種資料統計圖表,並不需要太高的學習成本。

—對比SAS軟件。SAS是由美國North Carolina州立大學於1966年開發的統計分析軟件。SAS把資料存取、管理、分析和展現有機地融為了一體。SAS作為一個專業的商務軟件,功能強大,統計方法齊、全、新,但是它的安裝步驟複雜、價格昂貴,同時也需要使用者具備一定的程序設計基礎。對於不需要太複雜的統計分析,只要求對資料進行計算處理並生成常用資料統計圖的普通使用者來說,使用SAS軟件的代價實在太高。而Python小巧、免費、靈活、多功能,更能符合普通用戶的需求。

本書採用的Python工具為Turtle、Matplotlib和NumPy,其中從Turtle模組開始入門,逐步過渡到專業級的Matplotlib庫和NumPy庫。Matplotlib庫是比較底層的Python可視化協力廠商庫,有著可定制性強、圖表資源豐富、簡單易用、達到專業級別的特點。在Python中有許多可用於資料可視化的庫,但大多數庫都是基於Matplotlib庫進行開發封裝的,所以,學習Python資料可視化,就必須學習Matplotlib庫。Matplotlib庫非常靈活,幾乎可以生成任何類型的圖形,無論是簡筆劃、藝術圖還是資料統計圖,都可以完美生成。

本書主要內容

本書採用Turtle、Matplotlib、NumPy這三個Python工具,以分形與計算機影像處理的經典算法為例,通過程式和圖像説明讀者一步步地掌握Python繪圖和資料可視化的方法和技巧,並且讓讀者感受到分形的魅力。

本書共分9章,主要內容如下。

第1章:海岸線有多長。採用Python自帶的Turtle模組,探討了海岸線的特點,並用科赫曲線在計算機上類比了海岸線。這一章是分形和Python繪圖的入門章節。

第2章:基因與生成元算法。採用Turtle模組探討了生成元算法,並分析和展示了多個生成元的實例。

第3章:植物算法之美。從Turtle模組過渡到專業級的Matplotlib繪圖庫,探討了L文法系統,並分析和展示了該系統所生成的多個分形圖和植物形態模擬。這一章主要介紹Matplotlib繪圖庫從安裝到具體使用的一系列基礎知識。

第4章:凝聚、凝聚、凝聚。採用Matplotlib繪圖庫和NumPy庫,探討了擴散有限凝聚模型,並分析和展示了多個凝聚體。這一章主要介紹亂數、NumPy庫及Matplotlib庫中的幾個繪圖函數。

第5章:拼貼與顯影。採用Matplotlib繪圖庫和NumPy庫,探討了反覆運算函數系統,並分析和展示了多個IFS分形圖和拼貼圖。這一章主要介紹畫布上的其他元素:標題、網格、x和y軸標籤、刻度、文本、注釋、圖例等。

第6章:優雅的曲線。採用Matplotlib繪圖庫和NumPy庫,探討了潛藏在螺旋背後的規律,並分析和展示了多個規律和圖形。這一章主要介紹子圖、極座標及LaTeX排版系統。

第7章:奇異瑰麗的圖案。採用Matplotlib繪圖庫和NumPy庫,探討了曼德勃羅集和朱利亞集,並分析和展示了曼德勃羅圖形和多個朱利亞圖形。這一章主要介紹網格座標矩陣和NumPy庫的相關函數,以及Matplotlib庫的Imshow函數、事件處理和自訂Colormap。

第8章:生命的反覆運算演化。採用Matplotlib繪圖庫和NumPy庫,探討了細胞自動機和生命遊戲,並分析和展示了多種生命細胞分佈圖。這一章主要介紹動態演示圖像和動畫,以及Matplotlib庫的Animation模組。

第9章:股票交割單數據可視化案例。這一章包含了一個完整的資料可視化項目案例,給讀者提供了一個系統化的參考樣本。


目次

第1章 海岸線有多長 1
1.1 海岸線 2
1.2 科赫(Koch)曲線 2
1.3 分形的特性 3
1.4 算法 4
1.5 科赫曲線.py源碼 5
1.6 源碼剖析 7
1.6.1 Turtle模組 7
1.6.2 函數 10
1.6.3 遞迴算法 11
1.7 資料可視化Tips 14
1.7.1 數據 14
1.7.2 可視化 16
第2章 基因與生成元算法 19
2.1 一生二,二生三 20
2.2 生成元 20
2.3 算法 23
2.4 生成元.py源碼 24
2.5 源碼剖析 27
2.6 數據可視化Tips 29
2.6.1 色彩 29
2.6.2 配色方案 32



第3章 植物算法之美 35
3.1 L文法系統(L-System) 36
3.2 經典的分形圖形 38
3.2.1 科赫曲線(Koch Curve) 38
3.2.2 科赫雪花(Snowflake Curve) 40
3.2.3 分形龍(Dragon Curve) 41
3.3 分形維數 42
3.4 植物形態模擬 44
3.4.1 分形樹 44
3.4.2 隨機分形樹 49
3.5 L文法系統.py源碼 50
3.6 Matplotlib庫 55
3.6.1 安裝 56
3.6.2 組成部分 57
3.6.3 使用方式 57
3.6.4 折線函數Plot 58
3.6.5 顯示模式 63
3.6.6 坐標軸函數 64
3.6.7 圖像保存到檔 65
3.6.8 顏色格式 66
3.6.9 RcParams變數 66
3.7 源碼剖析 67
3.7.1 棧和分形樹 67
3.7.2 類和物件 68
3.7.3 L系統函數 72
3.8 資料可視化Tips――可視化材料 74
3.8.1 資料類型 74
3.8.2 空間結構 76
3.8.3 視覺元素和背景信息 77
3.8.4 材料的整合 78
3.9 L文法系統―隨機.py源碼 79
第4章 凝聚、凝聚、凝聚 82
4.1 擴散有限凝聚模型(DLA) 83
4.2 混沌和秩序 84
4.3 凝聚體 85
4.3.1 凝聚體類型1 85
4.3.2 凝聚體類型2 86
4.4 DLA(中心點,方形).py源碼 87
4.5 亂數和Random模組 90
4.6 NumPy庫 92
4.6.1 入門介紹 92
4.6.2 ndarray物件 92
4.6.3 NumPy創建陣列 94
4.6.4 Random模組 96
4.7 Matplotlib.Pyplot模組函數 97
4.7.1 散點函數Scatter 97
4.7.2 其他繪圖函數 100
4.7.3 Figure和Axes函數 103
4.8 源碼剖析 105
4.9 資料可視化Tips 108
4.9.1 資料統計圖 108
4.9.2 資料的統計分析 108
4.9.3 不同資料統計圖的應用場景 111
4.10 DLA(一根線).py源碼 112
第5章 拼貼與顯影 115
5.1 反覆運算函數系統(IFS) 116
5.2 IFS分形圖 117
5.3 IFS.py源碼 122
5.4 源碼剖析1 124
5.5 IFS拼貼圖.py源碼 126
5.6 源碼剖析2 129
5.7 畫布其他元素 130
5.7.1 標題 130
5.7.2 網格 131
5.7.3 x軸、y軸標籤 132
5.7.4 x軸、y軸刻度 133
5.7.5 文本 134
5.7.6 注釋 135
5.7.7 圖例 137
5.7.8 顯示中文字元 138
5.8 資料可視化Tips:增強可讀性 138
第6章 優雅的曲線 142
6.1 螺旋線 143
6.2 規律與圖形 143
6.2.1 極坐標系 143
6.2.2 阿基米德螺旋線 144
6.2.3 斐波那契螺旋線 145
6.2.4 蝴蝶曲線 146
6.3 螺線縮略圖.py源碼 147
6.4 OO(物件導向)方式 151
6.4.1 Subplot函數 151
6.4.2 Subplots函數 152
6.4.3 Axes物件方法 153
6.5 極座標 155
6.6 LaTeX排版系統 157
6.7 縮略圖源碼剖析 158
6.8 數據可視化Tips:多視圖關聯設計 161
第7章 奇異瑰麗的圖案 163
7.1 曼德勃羅集 164
7.2 分形圖 165
7.2.1 曼德勃羅圖形 165
7.2.2 朱利亞圖形 167
7.2.3 可交互的縮略圖 169
7.3 曼德勃羅縮略圖.py源碼 169
7.4 網格座標矩陣 172
7.5 函數向量化 174
7.6 圖像生成函數Imshow 176
7.7 Matplotlib事件處理 180
7.8 自訂ColorMap 182
7.9 縮略圖源碼剖析 185
7.9.1 Iterator函數 185
7.9.2 Plot_julia函數 186
7.9.3 Onclick函數 187
7.9.4 Plot_mandelbrot函數 188
7.9.5 主程序 189
7.10 資料可視化Tips 189
7.10.1 可視化交互設計 189
7.10.2 熱力圖 190
第8章 生命的反覆運算演化 191
8.1 細胞自動機 192
8.2 生命細胞分佈圖 193
8.3 生命遊戲.py源碼 198
8.4 源碼剖析1 200
8.5 生命遊戲(animation).py源碼 202
8.6 程式安裝 203
8.6.1 FFmpeg 203
8.6.2 ImageMagick 204
8.7 創建和保存動畫 205
8.8 源碼剖析2 206
8.9 數據可視化Tips――動畫 207
第9章 股票交割單數據可視化案例 208
9.1 資料可視化的過程 209
9.2 收集資料 211
9.3 設計可視化方案 212
9.3.1 提出問題 212
9.3.2 選擇合適的資料圖表 212
9.4 製作和保存圖表 213
9.4.1 成交次數柱狀圖 213
9.4.2 個股成交次數折線圖 218
9.4.3 成交氣泡圖 222
9.4.4 資金盈虧圖 228
附錄A 分形 241
附錄B 可視化的起源和發展 246

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區