序
本書主要介紹如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等套件繪製專業圖表。本書首先介紹Python 語言程式設計基礎知識,以及NumPy 和Pandas 的資料操作方法;再比較介紹matplotlib、Seaborn 和plotnine 的圖形語法。本書系統性地介紹了使用matplotlib、Seaborn 和plotnine 繪製類別比較型、資料關聯式、時間序列型、整體局部型、地理空間型等常見的二維和三維圖表的方法。另外,本書也介紹了商業圖表與學術圖表的標準與差異,以及如何使用matplotlib 繪製HTML 互動頁面動畫。
🔵 本書定位
人生苦短,我用Python!
現在Python 語言越來越流行,尤其是在機器視覺、機器學習與深度學習等領域。但是資料視覺化一直是其缺陷,特別是相對R 語言而言。R 語言以ggplot2 套件及其擴充套件人性化的繪圖語法大受使用者的喜愛,特別是生物資訊與醫學研究者。市面上有兩本很經典的R ggplot2 教學:ggplot2 Elegant Graphics for Data Analysis 和R Graphics Cookbook,這兩本書重點介紹了ggplot2 套件的繪圖語法及常見圖表的繪製方法。另外,《R 語言資料視覺化之美:專業圖表繪製指南(增強版)》基於R 中的ggplot2 套件及其擴充套件等,系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法。
所以,筆者認為很有必要系統性地介紹Python 的繪圖語法系統,包含最基礎也最常用的matplotlib、常用於統計分析的Seaborn、最新出現的類似R ggplot2 語法的plotnine 套件,以及用於地理空間資料視覺化的Basemap 套件。本書首先介紹資料視覺化基礎理論,然後系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法,包含簡單的直條圖系列、橫條圖系列、聚合線圖系列、地圖系列等。
🔵 適合讀者群
本書適合想學習資料分析與視覺化相關專業課程的大專院校學生,以及對資料分析與視覺化有興趣的職場人士閱讀,尤其是Python 使用者。從軟體掌握程度而言,本書同樣適用於零基礎學習Python 的使用者。
🔵 閱讀指南
全書內容共有11 章,其中,前3 章是後面8 章的基礎,第4~10 章都是獨立基礎知識,第11 章是資料視覺化繪圖綜合案例。讀者可以根據實際需求有選擇性地進行學習。
第1 章介紹Python 程式設計基礎,重點介紹資料結構、控制敘述與函數撰寫。
第2 章介紹Python 資料處理基礎,重點介紹NumPy 和Pandas 的資料操作方法,包含NumPy 的數值運算與Pandas 的表格運算。
第3 章介紹Python 資料視覺化基礎,重點介紹了matplotlib、Seaborn 和plotnine 的圖形語法,以及資料視覺化的顏色主題運用原理。
第4 章介紹類別比較型圖表,包含直條圖系列、橫條圖系列、南丁格爾玫瑰圖、徑向柱圖等圖表。
第5 章介紹資料關聯式圖表,包含二維和三維散點圖、氣泡圖、等高線圖、立體曲面圖、三元相圖、二維和三維瀑布圖、相關係數熱力圖等圖表。
第6 章介紹資料分佈型圖表,包含一維、二維和三維的統計長條圖和核心密度估計圖、抖動散點圖、點陣圖、箱形圖、小提琴圖等圖表。
第7 章介紹時間序列型圖表,包含聚合線圖和面積圖系列、日曆圖、量化波形圖等圖表。
第8 章介紹局部整體型圖表,包含餅狀圖、馬賽克圖、華夫圓形圖、點狀直條圖系列等圖表。
第9 章介紹高維資料的視覺化方法,包含分面圖系列、矩陣散點圖、熱力圖、平行座標系圖、RadViz 圖等圖表。
第10 章介紹地理空間型圖表,包含分級統計地圖、點描法地圖、帶氣泡/柱形的地圖、等位地圖、線型地圖、三維柱形地圖等不同的地圖圖表。
第11 章介紹資料視覺化的各種應用場景,包含商業圖表、學術圖表、HTML 網頁動畫等的標準與製作。
🔵 應用範圍
本書的圖表繪製方法都是以Python 為基礎的matplotlib、Seaborn、plotnine、Basemap 等套件實現的,幾乎適應於所有常見的二維和三維圖表。本書以虛擬的地圖資料為例說明不同的地理空間型圖表,讀者需將繪圖方法應用到實際的地理空間型圖表。
🔵 適用版本
本書所用Python 版本為:3.7.1;圖表繪製套件matplotlib、Seaborn、plotnine、Basemap 和GeoPandas 的版本分別為:3.0.2、0.9.0、0.5.1、1.2.0和0.4.1;資料處理套件NumPy 和Pandas 的版本分別為:1.15.4 和0.23.4。Python 作為免費的開放原始碼軟體,資料分析與視覺化的套件更新反覆運算很快,這是它的優勢。但是有時候有些程式執行可能會由於Python 及其套件的版本的更新,而出現函數棄用(deprecated)的情況。此時,需要自己更新程式,使用新的函數替代原有的函數。
🔵 原始程式碼
本書搭配原始程式碼下載的GitHub 網址為github.com/Easy-Shu/Beautiful-Visualization-with-python。本書配有幾乎所有圖表的Python 原始檔案及其CSV 或TXT 格式的資料原始檔案。但是需要注意的是,如果執行的Python 版本沒有安裝對應的資料分析與視覺化的套件(package),那麼請預先安裝對應的套件,才能成功執行程式。同時,也請注意執行Python 及其套件的版本是否已經更新。另,本書原始程式為簡體中文,為求程式正確執行及保持最新版本,本書不另提供繁體中文程式,請讀者至本公司官網或原作者之github 下載原始程式並配合本書執行。
🔵 與作者聯繫
因筆者知識與能力所限,書中紕漏之處在所難免,歡迎並懇請讀者朋友們替予批評與指正,可以透過電子郵件聯繫筆者。如果讀者有關於學術圖表或商業圖表繪製的問題,可以與筆者交流。另外,更多關於圖表繪製的教學請關注筆者的部落格、專欄和微博平台,也可以特別注意微信公眾號:EasyShu,還可以增加筆者微信:EasyCharts。筆者的資料分析與視覺化的文章會優先發表在微信公眾號平台。