Python數據可視化之matplotlib實踐
  • 推薦1
  • 收藏8
  • 瀏覽1.9K

Python數據可視化之matplotlib實踐

劉大成 (作者) 

  • 書  號:978-7-121-34888-4
  • 出版日期:2018-09-01
  • 頁  數:228
  • 開  本:16(185*235)
  • 出版狀態:上市銷售
  • 維護人:石倩
電子書 ¥29.00
購買電子書
紙質版 ¥59.00
本書借助Matplotlib講解開展Python數據可視化實踐所需要掌握的關鍵知識和技能。本書主要由Matplotlib入門、精進、演練和拓展四部分組成。同時,為方便讀者對書中的內容進行有效實踐,相關章節都會配以大量典型的綜合案例。書中使用的代碼都是Python編程知識里的基礎內容,有利于讀者將時間和精力放在數據可視化的實踐本身上。因此,本書適合對Python數據可視化有興趣的各行業和領域的有識之士。
使用matplotlib繪制各種圖表,靈活使用matplotlib中的函數、面向對象方法和繪圖語句
研究生學習統計學,發表多篇統計學的相關論文,畢業之后一直做數據分析師一職,在支付行業、O2O行業和在線教育行業工作過,具有豐富的實踐經驗.
前 言


通過本書的學習,讀者可以根據自身需求靈活使用matplotlib中的繪圖語句,設置圖表組成元素,以及進行泛化性的圖形設置。值得注意的是,matplotlib繪圖庫的操作是通過API實現的,一種操作方法是類似MATLAB的函數接口的API;另一種操作方法是面向對象的API。這兩種API可以并行使用,不過函數接口的API的易用性明顯好于面向對象的API。所以,本書入門篇主要使用函數接口的API,精進和演練篇主要使用面向對象的API。
本書主要內容
第1篇 使用matplotlib庫繪制基本統計圖形,講解matplotlib庫的圖表組成元素的概念和實現方法,介紹細化matploblib庫的圖形內容的基本操作方法。
第2篇 設置坐標軸的刻度樣式,添加不同形式的注解,劃分繪圖區域,設置共享繪圖區域的坐標軸。
第3篇 主要圍繞數據可視化的主要展示窗口—坐標軸,來探討相關話題,包括設置坐標軸的位置、控制坐標軸刻度顯示的方法及移動坐標軸位置等話題。
第4篇 從通識和泛化的角度,探討進行Python數據可視化需要使用的知識和技術,包括修改matplotlib的配置,設置文本屬性,使用不同形式的配色模式,以及展示和保存圖形。
讀者對象
如果讀者了解一些Python的基礎編程知識,那是最好不過的事情了,但是如果不了解也沒有關系,因為書中的Python代碼都是非常易讀的,而且重點代碼也都會逐一細致地進行解釋。與此同時,書中在必要的章節會介紹統計學的相關概念和計算方法,方便讀者將寶貴的時間和精力放在數據可視化的實踐本身。
你可以是第一次接觸數據可視化的人員,甚至是沒有任何MATLAB或類似使用統計分析軟件的應用經驗的人員;你也可以是對Python有基本了解的運營人員、數據分析師、大數據工程師、機器學習工程師、數據挖掘工程師,甚至是人工智能專家、運維工程師、軟件測試人員,以及對Python數據可視化有興趣的各行業的讀者。
本書特色
本書在列舉大量Python數據可視化案例的過程中,將重點放在Python數據可視化思路、Python數據可視化技術和方法的探討上,使讀者通過閱讀本書,能夠在自己的實際工作和學習中靈活應用,并解決現實的Python數據可視化問題,而不是拘泥于書中的案例和方法,從而實現“授之以漁”的學習效果。
閱讀建議
本書的實例代碼都比較簡單易懂,而且代碼量很小,因而我沒有將代碼放在GitHub或相關可以下載實例代碼的平臺上,目的就是希望讀者可以獨立敲入完整代碼,真正動手實踐書中講過的每一個實例,探索每一個實例,通過動手實踐的方式,既能掌握Python數據可視化的編程知識,又能領會matplotlib的精髓,實現在做中學、在學中練的目標。正像蘇軾的詩句中所言的“竹外桃花三兩枝,春江水暖鴨先知?!敝越o讀者這樣的建議,目的就是讓讀者主動探索和掌握繪制圖表的實現方法。
本書的示例代碼都是基于Python 2.7、matplotlib 1.5.3和NumPy 1.13.1實現的。在書中的附錄部分會詳細講解Python 2.7、matplotlib 1.5.3和NumPy 1.13.1的安裝方法。
聯系與反饋
由于本人的學識和能力有限,書中存在紕漏之處在所難免,歡迎廣大讀者針對書中的錯誤、閱讀體會和建議等給予反饋。如果你對matplotlib也有自己的見解和研究興趣,歡迎與我聯系。請將反饋信息發送到電子郵箱[email protected]中。
致謝
談到本書的出版,還要從讀研究生時講起,那時候我就一直有寫書的想法,但當時由于閱歷和技能都很不成熟,就暫時放下了。畢業之后,我一直從事數據分析、機器學習方面的工作,隨著工作經驗的積累,也逐漸找到自己的研究興趣。機緣巧合的是,這段時間恰好有精力可以完成自己的這個夢想。
在寫作本書的過程中,我得到了很多人的幫助和支持。首先,要感謝我的父母,在求學和工作的過程中一直做我的堅強后盾,我也一直自豪于生活在“生產性的簡樸蜂巢”中。再有,在本書的編輯過程中,得到電子工業出版社石倩編輯耐心、細致的幫助和指導,讓我獲益良多。最后,要感謝我的妻子一直以來對我工作的理解和支持,而且也要感謝我的朋友和同事對我的成長所給予的關心和幫助。
不忘初心,堅定前行,時間會給你所想的一切。

目錄

目 錄


第1篇 入門
第1章 使用函數繪制matplotlib的圖表組成元素 2
1.1 繪制matplotlib圖表組成元素的主要函數 2
1.2 準備數據 3
1.3 繪制matplotlib圖表組成元素的函數用法 4
1.3.1 函數plot()——展現變量的趨勢變化 4
1.3.2 函數scatter()——尋找變量之間的關系 5
1.3.3 函數xlim()——設置x軸的數值顯示范圍 6
1.3.4 函數xlabel()——設置x軸的標簽文本 7
1.3.5 函數grid()——繪制刻度線的網格線 8
1.3.6 函數axhline()——繪制平行于x軸的水平參考線 9
1.3.7 函數axvspan()——繪制垂直于x軸的參考區域 11
1.3.8 函數annotate()——添加圖形內容細節的指向型注釋文本 12
1.3.9 函數text()——添加圖形內容細節的無指向型注釋文本 13
1.3.10 函數title()——添加圖形內容的標題 15
1.3.11 函數legend()——標示不同圖形的文本標簽圖例 16
1.4 函數組合應用 17
第2章 使用統計函數繪制簡單圖形 20
2.1 函數bar()——用于繪制柱狀圖 20
2.2 函數barh()——用于繪制條形圖 22
2.3 函數hist()——用于繪制直方圖 23
2.4 函數pie()——用于繪制餅圖 25
2.5 函數polar()——用于繪制極線圖 26
2.6 函數scatter()——用于繪制氣泡圖 27
2.7 函數stem()——用于繪制棉棒圖 29
2.8 函數boxplot()——用于繪制箱線圖 30
2.9 函數errorbar()——用于繪制誤差棒圖 31
第3章 繪制統計圖形 33
3.1 柱狀圖 33
3.1.1 應用場景——定性數據的分布展示 33
3.1.2 繪制原理 33
3.2 條形圖 35
3.3 堆積圖 37
3.3.1 堆積柱狀圖 37
3.3.2 堆積條形圖 38
3.4 分塊圖 39
3.4.1 多數據并列柱狀圖 40
3.4.2 多數據平行條形圖 41
3.5 參數探索 42
3.6 堆積折線圖、間斷條形圖和階梯圖 44
3.6.1 用函數stackplot()繪制堆積折線圖 44
3.6.2 用函數broken_barh ()繪制間斷條形圖 45
3.6.3 用函數step()繪制階梯圖 47
3.7 直方圖 48
3.7.1 應用場景——定量數據的分布展示 48
3.7.2 繪制原理 49
3.7.3 直方圖和柱狀圖的關系 50
3.7.4 堆積直方圖 51
3.7.5 直方圖的不同形狀 53
3.8 餅圖 55
3.8.1 應用場景——定性數據的比例展示 55
3.8.2 繪制原理 55
3.8.3 延伸閱讀——非分裂式餅圖 57
3.8.4 案例——繪制內嵌環形餅圖 58
3.9 箱線圖 60
3.9.1 應用場景——多組定量數據的分布比較 60
3.9.2 繪制原理 61
3.9.3 延伸閱讀——箱體、箱須、離群值的含義和計算方法 63
3.9.4 案例1——水平方向的箱線圖 65
3.9.5 案例2——不繪制離群值的水平放置的箱線圖 66
3.10 誤差棒圖 67
3.10.1 應用場景——定量數據的誤差范圍 67
3.10.2 繪制原理 68
3.10.3 案例1——帶誤差棒的柱狀圖 69
3.10.4 案例2——帶誤差棒的條形圖 71
3.10.5 案例3——帶誤差棒的多數據并列柱狀圖 72
3.10.6 案例4——帶誤差棒的堆積柱狀圖 74
第4章 完善統計圖形 77
4.1 添加圖例和標題 77
4.1.1 圖例和標題的設置方法 77
4.1.2 案例1——圖例的展示樣式的調整 79
4.1.3 案例2——標題的展示樣式的調整 80
4.1.4 案例3——帶圖例的餅圖 82
4.2 調整刻度范圍和刻度標簽 83
4.2.1 調整刻度范圍和刻度標簽的方法 84
4.2.2 延伸閱讀——函數subplot() 85
4.2.3 案例——逆序設置坐標軸刻度標簽 86
4.3 向統計圖形添加表格 87
第2篇 精進
第5章 統計圖形繪制進階:圖形樣式 92
5.1 設置坐標軸的刻度樣式 92
5.1.1 刻度定位器和刻度格式器的使用方法 92
5.1.2 調用模塊pyplot中的函數實現刻度樣式的設置 95
5.1.3 案例1——刻度標簽和刻度線樣式的定制化 95
5.1.4 案例2——貨幣和時間序列樣式的刻度標簽 96
5.2 添加有指示注解和無指示注解 98
5.2.1 有指示注解和無指示注解的添加方法 98
5.2.2 案例1——圓角文本框的設置 100
5.2.3 案例2——文本的水印效果 101
5.2.4 案例3——圓角線框的有弧度指示的注解 102
5.2.5 案例4——有箭頭指示的趨勢線 104
5.2.6 案例5——?;鶊D 105
5.3 實現標題和坐標軸標簽的投影效果 107
5.3.1 實現標題和坐標軸標簽的投影效果的操作方法 107
5.3.2 案例——給坐標軸標簽添加文本框 109
第6章 劃分畫布的主要函數 111
6.1 函數subplot():繪制網格區域中的幾何形狀相同的子區布局 111
6.1.1 函數subplot()的使用方法 112
6.1.2 案例1——在極坐標軸上繪制折線圖 113
6.1.3 案例2——在極坐標軸上繪制散點圖 114
6.1.4 案例3——在非等分畫布的繪圖區域上實現圖形展示 115
6.2 函數subplot2grid():讓子區跨越固定的網格布局 116
6.2.1 函數subplot2grid()的使用方法 116
6.2.2 延伸閱讀——模塊gridspec中的類GridSpec的使用方法 118
6.3 函數subplots():創建一張畫布帶有多個子區的繪圖模式 120
6.3.1 案例1——創建一張畫布和一個子區的繪圖模式 120
6.3.2 案例2——創建一張畫布和兩個子區的繪圖模式 122
6.3.3 案例3——多種統計圖形的組合展示 124
第7章 共享繪圖區域的坐標軸 128
7.1 共享單一繪圖區域的坐標軸 128
7.2 共享不同子區繪圖區域的坐標軸 130
7.2.1 設置方法 130
7.2.2 案例——將共享坐標軸的子區之間的空隙去掉 135
7.3 共享個別子區繪圖區域的坐標軸 136
7.3.1 設置方法 136
7.3.2 延伸閱讀——用函數autoscale()調整坐標軸范圍 138
第3篇 演練
第8章 坐標軸高階應用 142
8.1 設置坐標軸的位置和展示形式 142
8.1.1 案例1——向畫布中任意位置添加任意數量的坐標軸 142
8.1.2 案例2——調整已經確定的坐標軸的顯示、隱藏與刻度范圍等問題 144
8.1.3 延伸閱讀——使用函數axis()繪制坐標軸 145
8.2 使用兩種方法控制坐標軸刻度的顯示 146
8.2.1 方法1——調用Axes.set_xticks()和Axes.set_yticks()實例方法 146
8.2.2 方法2——調用函數setp() 147
8.2.3 案例1——棉棒圖的定制化展示 149
8.2.4 案例2——坐標軸的樣式和位置的定制化展示 150
8.3 控制坐標軸的顯示 152
8.4 移動坐標軸的位置 154
第9章 設置線條類型和標記類型的顯示樣式 158
9.1 不同調用簽名形式的字典使用方法 158
9.1.1 方法1——調用簽名中的關鍵字參數的設置形式“fontdict=font” 158
9.1.2 方法2——關鍵字參數的設置形式“**font” 160
9.2 線條類型的顯示樣式設置方法 161
9.3 標記類型的顯示樣式設置方法 162
9.3.1 方法1——單一字符模式 162
9.3.2 方法2——mathtext模式 164
9.4 延伸閱讀 166
9.4.1 案例1——“破折號”線條樣式的不同展現形式的設置方法 166
9.4.2 案例2——標記填充樣式的設置方法 168
9.4.3 案例3——函數plot()的調用簽名的設置方法 170
第4篇 拓展
第10章 matplotlib的配置 174
10.1 修改代碼層面的matplotlib的配置 174
10.1.1 方法1——調用函數matplotlib.rc() 175
10.1.2 方法2——調用屬性字典matplotlib.rcParams 175
10.2 修改項目層面的matplotlib配置 176
10.2.1 配置文件所在路徑 176
10.2.2 設置方法 177
第11章 文本屬性設置 179
11.1 設置字體屬性和文本屬性 179
11.1.1 方法1——改變配置文件matplotlibrc的字體屬性值和文本屬性值 181
11.1.2 方法2——通過屬性字典rcParams調整字體屬性值和文本屬性值 182
11.1.3 方法3——通過設置函數的關鍵字參數 183
11.2 延伸閱讀——手動添加字體 184
11.3 案例——字體主要屬性的可視化展示 185
第12章 顏色使用 188
12.1 使用顏色參數和顏色映射表 188
12.1.1 顏色參數的使用 188
12.1.2 顏色映射表的使用 190
12.2 綜合案例 193
12.2.1 案例1——模擬圖的顏色使用模式 193
12.2.2 案例2——散點圖的顏色使用模式 194
12.2.3 案例3——極區圖的顏色使用模式 195
12.2.4 案例4——等高線圖的顏色使用模式 197
12.2.5 案例5——顏色標尺的顏色使用模式 198
第13章 輸出圖形的展示和保存 200
13.1 運行命令行展示輸出圖形 200
13.1.1 方法1——Python shell模式 200
13.1.2 方法2——IPython shell模式 203
13.2 保存輸出圖形 205
13.2.1 方法1——使用“保存”按鈕進行存儲 205
13.2.2 方法2——通過執行代碼語句進行保存 207
附錄A Python基礎知識 208
附錄B NumPy基礎知識 213
附錄C matplotlib、NumPy和IPython的安裝方法 217

讀者評論

  • 畫散點圖的時候,有時數據比較多,密密麻麻的,怎樣通過顏色深淺或者點地大小表示點密度呢?

    蜉蝣渡海發表于 2019/10/1 18:30:18
  • welcome to another matplotlib-examples website

    https://www.data-insights.cn/?cat=1

    https://www.data-insights.cn/

    xuanhaoliu發表于 2019/3/22 21:31:22
  • 有源碼可下載嗎?

    xuanhaoliu發表于 2019/3/22 21:07:37
  • 沒有案例文件?

    傻傻發表于 2018/12/18 22:58:40
  • 可以加入 backends 方面的東西。
    第二篇有時采用plt.**形式有時采用Artister.**形式的函數,可以單獨講講Artister的構成。

    最近用from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, N**igation**2Tk
    總是報出一些奇怪的錯誤

    2018-11-20 20:27:05.918 Python[59940:842804] -[NSApplication _setup:]: unrecognized selector sent to instance 0x7fac15f786a0
    2018-11-20 20:27:05.920 Python[59940:842804] Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSApplication _setup:]: unrecognized selector sent to instance 0x7fac15f786a0’ First throw call stack:
    (
    0 CoreFoundation 0x00007fff3eb09fcb __exceptionPreprocess + 171
    1 libobjc.A.dylib 0x00007fff657c3c76 objc_exception_throw + 48
    2 CoreFoundation 0x00007fff3eba2a24 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    ……
    32 libdyld.dylib 0x00007fff663b3115 start + 1
    33 ??? 0x0000000000000003 0x0 + 3
    )
    libc++abi.dylib: terminating with uncaught exception of type N**ceptionlibc++abi.dylib: terminating with uncaught exception of type N**ception

    William發表于 2018/11/20 20:35:16
    • # You need to set TkAgg backend before importing pyplot
      import matplotlib
      matplotlib.use("TkAgg")
      # You need to import pyplot after setting the TkAgg backend
      from matplotlib import pyplot as plt

      Aleax發表于 2018/12/11 22:59:14

電子書版本

  • Epub

推薦用戶

相關圖書

Python數據可視化之美

張杰 (作者)

本書主要介紹如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等包繪制專業圖表。本書首先介紹Python 語言編...

¥129.00

Meteor全棧開發

杜亦舒 (作者)

本書全面介紹了新一代全棧開發平臺 Meteor。書中首先簡要介紹了 Meteor 的概念和特性,然后通過各種示例講解 Meteor 的用法,再用案例實踐的方式綜...

¥48.00

前端函數式攻城指南

歐陽繼超 (作者)

在后端,函數式語言層出不窮。在前端,函數式最后的邊界也已經被漸漸打破。Scala的Scala.js、Clojure的ClojureScript都試圖同構移向前端...

¥39.00

Egret——HTML5游戲開發指南

張鑫磊 (作者)

本書向大家介紹HTML5游戲行業最新動態以及未來發展方向,同時也提及了當前HTML5技術相關市場。全書針對Egret HTML5游戲做了全方位講解,涉及游戲中的...

¥65.00

ES6 標準入門(第2版)

阮一峰 (作者)

ES6(又名 ES2105)是 JavaScript 語言的新標準,2015 年 6 月正式發布后,得到了迅速推廣,是目前業界超級活躍的計算機語言。本書是國內僅...

¥49.00

超實用的HTML代碼段

本書精選300余段HTML代碼,覆蓋了幾乎所有的HTML元素,是網站建設和網頁設計人員在設計HTML結構代碼時不可或缺的設計方案、技巧和參照。本書的代碼從基礎的...

¥59.00
国际官方棋牌下载中心