iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
AI & Data

從資料庫到資料分析視覺化系列 第 25

{DAY 25} Matplotlib 基礎操作

  • 分享至 

  • xImage
  •  

前言

今天這篇要進入到資料視覺化

在前幾篇的文章裡,資料的形式多半是呈現在表格化的資料表上

為了讓數據的呈現更為淺顯易懂

此時資料變成圖表就派上用場了!

可以讓數字藉由圖像化找出單純看數字看不出來的insight

這裡首先要介紹的視覺化模組是matplotlib

matplotlib是資料科學世界裡最基本也是最常見的視覺化模組

Matplotlib官網介紹

在真實資料的場景中

很多時候的資料想要呈現的圖表都不相同

有時候想要將圖表拆成多個子圖

或是想要換顏色

圖例如果重疊怎麼辦?

所以在學習視覺化的時候

很重要的是學會如何查出想要的答案

  1. 首先最基本的就是從Matplotlib官網上查詢

    Tutorials - Matplotlib 3.4.3 documentation

    裡面有各種圖形的分類,還有教學

是個快速方便的使用資源

  1. Stakeoverflow

    Stack Overflow - Where Developers Learn, Share, & Build Careers

    上面會有很多的問答

    可以利用想要繪製的圖,或是遇到的問題

    利用關鍵字搜尋是否有人問過或是解答過

    也可以自己在上面發問

認識圖表

在學會繪圖之前

先要知道一個圖表是怎麼組成的

Figure:可以想像成是一張畫布

Axes: 則是畫布裡面可以出現的子圖,可以利用參數設定想要出現的子圖數量、位置和各個子圖的名稱

接下來看官網上關於圖表的介紹:圖片來源

legend: 圖例

major/miner tick label: 主要的欄位名稱或是附加的欄位名稱

grid: 格線

title: 子圖名稱

可以先初步建立對圖表架構的概念

這之後在參數的使用上會很重要

建立圖框

在這裡我使用的是JupyterLab

先簡介使用上很常使用的快捷鍵

就是Shift+Tab

可以在jupyter notebook 內直接開啟函數的說明檔案

不止用在matplotlib,在前面學到的NumPy,Pandas等Python的語法都可以查詢

具體使用方式如下:

  1. 輸入使用的函數名
  2. 按下快捷鍵shift+tab
  3. 會彈出說明的滾動式視窗
  4. 裡面會教參數的解釋、參數使用

現在來建立一個沒有指定子圖的畫布

fig = plt.figure() 

當我們想要指定畫布裡出現一個子圖

第一個方法:

會使用到plt.subplots()在括號裡不要填上任何參數即可

fig = plt.subplots()

當我們想要建立一個2x2有四個子圖的畫布時

fig, axes = plt.subplots(2,2)

當我們想要指定特定的子圖做圖時,可以利用二維陣列的思維索引

像是axes[0,1],[1,1]的方式

可以看到若是指定axes[0,1],在畫布上就會將指定的資料繪製在右上角的子圖

第二個方法:

也可以先建立畫布,使用plt.figure()

並加上參數figsize指定畫布大小

再加上子圖,使用add_subplot()

參數使用方式add_subplot(nrows, ncols, index, **kwargs)

同樣假設想設計2x2的有四個子圖的畫布

並且將每個子圖命名

fig = plt.figure(figsize=(10,5))
axe1 = fig.add_subplot(2, 2, 1) 
axe2 = fig.add_subplot(2, 2, 2) 
axe3 = fig.add_subplot(2, 2, 3) 
axe4 = fig.add_subplot(2, 2, 4) 

小結

現在認識了matplotlib

知道要怎麼查詢跟使用工具

還學習了圖表的架構跟如何建立圖框

下一篇就會介紹基礎的函數和參數

因為概念是共用的

最常使用到的是長條圖、折線圖、圓餅圖、柱狀圖、散佈圖等等

所以學會變化參數很重要

接下來會結合前幾篇學過的NumPy和Pandas練習!

前面的都要熟練才能往下繼續


上一篇
{DAY 24} Pandas 學習筆記part.10
下一篇
{DAY 26} Matplotlib 基礎操作
系列文
從資料庫到資料分析視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言