天天看點

資料可視化教程來了!

開源初衷

Matplotlib可以說是python資料可視化最重要且常見的工具之一,幾乎每個和資料打交道的人都不可避免,還有大量可視化工具是基于它的二次開發。

開源教程的設計初衷源于筆者最初用python做資料可視化時面臨兩大痛點,

  • 繪圖時現用現查,用過即忘,效率極低
  • 隻會複制粘貼,不知其是以然,面對複雜圖表一籌莫展

如果螢幕前的你,也正在面臨這兩個痛點,那麼學習本項目教程将會是一個不錯的選擇。

本項目重點希望在兩個層面幫助讀者建構matplotlib的知識體系(文末有開源教程位址):

  • 從圖形,布局,文本,樣式等多元度系統梳理matplotlib的繪圖方法,建構對于繪圖方法的整體了解
  • 從繪圖API層級,接口等方面闡明matplotlib的設計理念,擺脫隻會複制粘貼的尴尬處境

關于本項目的名稱,Fantastic-Matplotlib,在筆者精讀過官網文檔之後,才愈發覺得精妙,仿佛看到了一角下的廣袤冰山,被它強大的功能和精巧的設計驚豔到了,之前對于matplotlib的了解還是過于淺薄,是以想用fantastic來表示筆者的感慨,也希望能夠通過這樣一個開源教程帶領讀者領略的matplotlib的精彩之處。

開源教程

Fantastic-Matplotlib共有5個章節,筆者為每一個章節寫了一句小詩作為回目名,因為在筆者看來,可視化不僅僅是一項技術,更是一件充滿了藝術性的事情,在使用可視化庫畫圖表時,常常想象自己在一塊畫布上自由地畫水粉畫。

第一回:Matplotlib初相識

第二回:藝術畫筆見乾坤

第三回:布局格式定方圓

第四回:文字圖例盡眉目

第五回:樣式色彩秀芳華

這五個章節将從不同的次元(matplotlib概述,繪圖元素,布局格式,文字圖例,樣式色彩)介紹如何進行可視化繪圖。

資料可視化教程來了!

第一回是引子,首先介紹了matplotlib可視化繪圖包的特點,然後通過一個極簡的可視化例子告訴讀者如何用最簡單的幾行代碼畫出一幅可視化圖表,最後簡單介紹一幅可視化圖表figure的組成和兩種繪圖接口。

兩種繪圖接口對初學者來說是一個難點,兩種最常用的繪圖接口特點如下:

  1. 顯式建立figure和axes,在上面調用繪圖方法,也被稱為OO模式(object-oriented style);
  2. 依賴pyplot自動建立figure和axes,并繪圖。

他們的差別在于OO模式更為底層,是一種面向對象的思路,從代碼上更為複雜,但同時也更靈活。pyplot是面向過程的思路,matplotlib對其做了更進階的封裝,使用時隻用關注想要實作什麼效果即可,而不用涉及到對象本身,代碼上更為簡潔,但在靈活性上不夠OO模式自由。

通過第一章的學習,即使是零基礎的讀者也能夠對matplotlib具有初步的了解,作為可視化的入門,學習如何畫一個最簡單的可視化例子。

資料可視化教程來了!

第二回是這個資料可視化教程中最重要的一個章節,整個章節都圍繞Artist對象展開。Artist對象在matplotlib宇宙中是一個極為重要的概念,實際上我們在做可視化時幾乎接觸到的所有對象元素都屬于artist對象。

Artist對象可以分為兩大類,基本元素primitives和容器對象container。基本元素指的是我們想在可視化畫布上填上的标準元素,比如一條線,一個矩形,一段文字,一張外部圖檔,以上這些都屬于基本元素的範疇。而容器對象指的是用來放置那些基本元素的對象,如Figure(完整的畫布),Axes(子圖),Axis(坐标軸)。按照官網的說法,我們在用matplotlib做可視化圖表時,95%的時間都是在和Artist打交道,是以熟練掌握artist是學好資料可視化的關鍵。

本章首先介紹了matplotlib畫圖的三層API,其中前兩層都屬于底層API,通常我們打交道的都位于最上層的API中,進而引入了最上層API中artist的概念和分類,然後介紹matplotlib的标準使用流程,簡單來說分為三步:

  1. 建立一個

    Figure

    執行個體;
  2. 使用

    Figure

    執行個體建立一個或者多個

    Axes

    Subplot

  3. Axes

    執行個體的輔助方法來建立

    primitive

在介紹完以上這些概念後,本章節詳細講解了常用基本元素和容器對象的使用方法。通過本章的學習,所有常見圖表(折線圖,柱狀圖,餅圖等)的雛形都已經可以畫出來了,并且你還可以根據實際需要自由組合不同基本元素搭建更為複雜的圖表。

在本章中還針對artist元素,重點示範兩種繪圖接口的使用方法,對于常見的基本元素,matplotlib都提供了OO模式和pyplot模式的現成方法供使用者選擇。

本質上我們繪制一幅可視化圖表就是在容器對象(container)上填充群組合基本元素(primitive)的過程,像極了現實中繪畫的過程。

第三回~第五回

資料可視化教程來了!

第三~五章是對于一幅可視化圖表的進一步修飾與加工,分别從布局格式,文字圖例,樣式色彩三方面對圖表進行修飾。

第三章重點講解了如何在一張大畫布上劃分均勻和非均勻的子圖以進行多圖展示,豐富圖表内容。

第四章重點講解了如何在圖表上的不同功能區(figure,axes,tick,legend)上添加文字,修改文字樣式和顯示内容,精準的文字表述也是可視化圖表的一個重要組成元素。

第五章重點講解了如何在圖表上設定圖表的樣式和色彩,進而讓可視化圖表更美觀,看起來更像是一幅藝術作品。

最後還想說的是,對于學習完本教程的讀者,若是仍然覺得學有餘力不過瘾,強烈建議按需閱讀官方文檔,相信你一定會有所收獲的。

核心貢獻者:楊劍砺、楊煜、居鳳霞、耿遠昊、李運佳

Fantastic-Matplotlib開源位址

https://github.com/datawhalechina/fantastic-matplotlib

本系列教程也同步到了天池平台,大家可以掃下方二維碼或者點選閱讀原文檢視相關課程,在天池平台可以直接編輯、運作相關代碼和案例。

天池課程位址:

https://tianchi.aliyun.com/course/324
資料可視化教程來了!

​​

--END--