國立臺灣大學

#分享 資料視覺化 - 完全攻略Matplotlib

6月16日 22:26
■為什麼需要資料視覺化 ? 當我們拿到一大堆原始資料時,我們第一時間的心理活動可能會是這樣: 『靠~~ 怎麼還在載入? 到底有幾筆? 到底有那些欄位? 資料與問題有關嗎? 有關的話會是什麼關係? .......... (以下省略萬字小劇場與千頭草泥馬) 當我們冷靜下來後,有幾個問題需要回答:「要如何了解Data」、「應該有那些合理的假設 ?」、「這些假設是否看似成立 ?」,此時通常會使用資料視覺化的方式來幫助自己理解資料、檢核假設成立可能性、與客戶溝通等初步工作。 ■ Matplotlib architecture 介紹 Matplotlib 是Python常用的繪圖套件,它有多強大這裡就不再贅述。它的架構由裡至外一共三層:
1. Backend layer Backend 層由3種類型介面構成:FigureCanvas、Renderer、Event 這層屬於一種interface, 主要是定義各種繪圖所需要統一介面,雖然不同的開發環境有各自的實作的方法,但由於介面一致,所以對於一般開發者而言,它們使用matplotlib的方法是一樣的。 2. Artist layer Artist Layer有兩種類型:primitives 和containers。 primitives 主要是要處理我們在畫布上欲繪製的標準圖形對象,包括Line2D、Rectangle、Text、AxesImage等,containers是處理圖像放置的位置,例如Figure, Subplot, and Axes。所以Artist Layer會定義圖形由那些子圖組成的,以及物體在坐標系(Axes)中的相對位置。 3. Scripting layer 腳本層(Scripting Layer)可以簡化及加速圖形的建立與使用,也是大多數開發者最常使用的部分,但Scripting Layer卻是以用戶的角度來簡化與其他層一起工作的任務。只要導入 matplotlib.pyplot 就可以開始使用,非常方便。 ■ 圖解Matplotlib的重要組件 Matplotlib的各個元件關係可以用下列的樹狀方式表示:
在 matplotlib中, 全部圖像都屬於 Figure 物件管理。在 Figure 中可以包含一個或者多個 Axes 物件。每個 Axes(ax) 物件都有本身專屬坐標系統的繪圖區域。 所屬關係如下(圖片來自網絡):
我們用個圖例來具體的說明 ◆ 圖例一
eg. Title 為圖像標題,Axis(Xaxis / Yaxis) 為坐標軸, Label 為坐標軸標註,Tick 為刻度線,Tick Label 為刻度標註。 ◆ 圖例二
■ 常見的圖表與其使用情境 1.這邊直接提供幾個經典的範例, 完整的範例請參考 # Top 50 matplotlib Visualizations – The Master Plots (with full python code)
2.了解圖表與使用情境後,我們可以使用matplotlib gallery去選擇我們想繪製的圖表,直copy裡面的sample code來改就好,很方便
3.有興趣也可以直接到我的 github 觀看程式碼
當我們了解Matploblib的架構後,搭配範例程式基本上就可以畫出各種炫酷的圖表,而當你拿著視覺化的資料侃侃(唬)而談(爛)時,相信聽眾對你的專業觀感也會更為加分。 ■ 推薦閱讀 Michael翔 - Matplotlib 知識點整理
22
回應 6
文章資訊
共 6 則留言
推薦內容農場的文章,大丈夫?www
B1 什麼意思? 哪一個是內容農場呀
國立清華大學
B3 程式前沿 內容大部分是中國幾個平台轉繁體搬運過去的 真正原文網址:
(還把大部分專有名詞換成台灣用語了 內容農場真的越來越厲害了) 第二個連結我打不開 但是看到微信網址 八成也是
原 PO - 國立臺灣大學
推薦閱讀是站外的內容網址,我個人覺得是蠻有參考價值的,並不清楚它是內容農場。剛看過B3大大的網址,重新更正(希望這是真的原文....吧)
B4 了解,謝謝分享