- Python數據可視化之美:專業圖表繪制指南(全彩)
- 張杰
- 2513字
- 2020-05-22 18:04:26
前言
本書主要介紹如何使用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)的情況。此時,需要自己更新代碼,使用新的函數替代原有的函數。
源代碼
本書配有幾乎所有圖表的Python源文件及其CSV或TXT格式的數據源文件。但是需要注意的是,如果運行的Python版本沒有安裝相應的數據分析與可視化的包(package),那么請預先安裝相應的包,才能成功運行代碼。同時,也請注意運行Python及其包的版本是否已經更新。本書配套源代碼下載的GitHub網址:https://github.com/Easy-Shu/Beautiful-Visualization-with-python。
與作者聯系
因筆者知識與能力所限,書中紕漏之處在所難免,歡迎并懇請讀者朋友們給予批評與指正,可以通過郵箱聯系筆者。如果讀者有關于學術圖表或商業圖表繪制的問題,可以與筆者交流。另外,更多關于圖表繪制的教程請關注筆者的博客、專欄和微博平臺,也可以重點關注微信公眾號:EasyShu,還可以添加筆者微信:EasyCharts。筆者的數據分析與可視化的文章會優先發表在微信公眾號平臺。
郵箱:easycharts@qq.com
博客:https://github.com/Easy-Shu/EasyShu-WeChat
知乎專欄:https://zhuanlan.zhihu.com/EasyShu(知乎賬號:張杰)
致謝
自從2019年10月出版《R語言數據可視化之美:專業圖表繪制指南(增強版)》,很多讀者問筆者能不能出一本Python版的數據可視化教程。寫書真的嘔心瀝血,但是在撰寫過程中能系統地總結所學的知識,可以查漏補缺,也是受益匪淺。《R語言數據可視化之美:專業圖表繪制指南》這本書在2017年5月斷斷續續寫了1年半多,到2019年5月才出版。后來又花了3個多月增加了3章圖表內容,增強版才出版。
所謂“大道相通”,不同軟件的數據可視化原理都是相通的。《Python數據可視化之美:專業圖表繪制指南》這本書就是對照著R語言那本書“翻譯”而成的。所以親愛的讀者請不必詫異于筆者現在這么快又出版Python的數據可視化圖書了。
在這里,首先要感謝讀者,感謝你們對筆者的支持與包容。也非常感謝筆者的大學好友金偉(現為騰訊高級研究員)引導筆者入門Python,還要感謝香港理工大學的姚鵬鵬博士、清華大學的趙建樹博士筆者在學習Python時給予的幫助。最后,筆者覺得還應該感謝的就是自己。驀然回首,4年彈指一揮間,從大學畢業到香港做學術研究這幾年,經歷過很多次的失望,也差點患上抑郁癥,感謝自己有一顆積極、陽光、樂觀的心,終于守得云開見月明,如筆者所愿能堅持做自己喜歡的事情。
小時候,讀到課本里普希金的一段話:“假如生活欺騙了你,不要悲傷,不要心急!憂郁的日子里須要鎮靜:相信吧,快樂的日子將會來臨。”到現在才明白這確實是一條生活的“潛規則”。月有陰晴圓缺,人有悲歡離合。人不僅有趨利避害、喜甜厭苦的本能反應,還有趨歡避悲、求樂脫苦的本能調節。所以,悲傷的日子后面就是快樂的日子。
親愛的讀者,也希望你能快樂地閱讀本書!
作者
2019年12月5日
- 騰訊iOS測試實踐
- Java Web及其框架技術
- Mastering Predictive Analytics with Python
- Apache Kafka Quick Start Guide
- Haskell Data Analysis Cookbook
- The Professional ScrumMaster’s Handbook
- 動手學數據結構與算法
- Android開發三劍客:UML、模式與測試
- Ubuntu Server Cookbook
- Java編程指南:語法基礎、面向對象、函數式編程與項目實戰
- Java程序性能優化實戰
- Oracle API Management 12c Implementation
- Odoo Development Essentials
- Lucene 4 Cookbook
- C程序員從校園到職場